From 8f82a63ae270ac4dd8c94f4cf8946f93dd59d822 Mon Sep 17 00:00:00 2001 From: 0xStabby <88103620+0xStabby@users.noreply.github.com> Date: Tue, 21 Nov 2023 17:14:42 -0600 Subject: [PATCH] Initial commit --- .env.example | 22 + .github/workflows/lint-test.yml | 36 + .gitignore | 14 + .mocharc.json | 11 + .solhintignore | 1 + EIP-draft.md | 279 + LICENSE | 674 + README.md | 132 + contracts/ERC5725.sol | 235 + contracts/mocks/ERC20Mock.sol | 21 + contracts/reference/LinearVestingNFT.sol | 116 + contracts/reference/VestingNFT.sol | 91 + docs/ERC5725.md | 162 + docs/IERC5725.md | 165 + docs/LinearVestingNFT.md | 113 + docs/VestingNFT.md | 94 + examples/getVestingPeriod.ts | 30 + hardhat.config.ts | 225 + hardhat/evm/contracts.ts | 53 + hardhat/evm/signers.ts | 67 + hardhat/evm/verifier.ts | 386 + hardhat/index.ts | 5 + hardhat/task.ts | 357 + hardhat/types.ts | 65 + hardhat/utils/clean.js | 31 + hardhat/utils/env.ts | 16 + hardhat/utils/index.ts | 11 + hardhat/utils/logger.ts | 52 + hardhat/utils/test.ts | 117 + package.json | 96 + prettier.config.js | 22 + scripts/deploy.ts | 28 + solhint.config.js | 41 + src/erc5725.ts | 46 + src/index.ts | 12 + .../build-info/LinearVestingNFT.json | 153823 +++++++++++++++ .../build-info/VestingNFT.json | 153823 +++++++++++++++ .../contract-artifacts/LinearVestingNFT.json | 615 + .../contract-artifacts/VestingNFT.json | 600 + tasks/20230212-vesting-nft/index.ts | 15 + tasks/20230212-vesting-nft/input.ts | 35 + .../output/bscTestnet.json | 7 + tasks/20230212-vesting-nft/readme.md | 9 + tasks/20xxxxxx-template/build-info/.gitkeep | 0 .../contract-artifacts/.gitkeep | 0 tasks/20xxxxxx-template/index.ts | 12 + tasks/20xxxxxx-template/input.ts | 31 + tasks/20xxxxxx-template/output/.gitkeep | 0 tasks/20xxxxxx-template/readme.md | 12 + test/LinearVestingNFT.test.ts | 123 + test/VestingNFT.test.ts | 341 + tsconfig.json | 31 + yarn.lock | 6919 + 53 files changed, 320222 insertions(+) create mode 100644 .env.example create mode 100644 .github/workflows/lint-test.yml create mode 100644 .gitignore create mode 100644 .mocharc.json create mode 100644 .solhintignore create mode 100644 EIP-draft.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 contracts/ERC5725.sol create mode 100644 contracts/mocks/ERC20Mock.sol create mode 100644 contracts/reference/LinearVestingNFT.sol create mode 100644 contracts/reference/VestingNFT.sol create mode 100644 docs/ERC5725.md create mode 100644 docs/IERC5725.md create mode 100644 docs/LinearVestingNFT.md create mode 100644 docs/VestingNFT.md create mode 100644 examples/getVestingPeriod.ts create mode 100644 hardhat.config.ts create mode 100644 hardhat/evm/contracts.ts create mode 100644 hardhat/evm/signers.ts create mode 100644 hardhat/evm/verifier.ts create mode 100644 hardhat/index.ts create mode 100644 hardhat/task.ts create mode 100644 hardhat/types.ts create mode 100644 hardhat/utils/clean.js create mode 100644 hardhat/utils/env.ts create mode 100644 hardhat/utils/index.ts create mode 100644 hardhat/utils/logger.ts create mode 100644 hardhat/utils/test.ts create mode 100644 package.json create mode 100644 prettier.config.js create mode 100644 scripts/deploy.ts create mode 100644 solhint.config.js create mode 100644 src/erc5725.ts create mode 100644 src/index.ts create mode 100644 tasks/20230212-vesting-nft/build-info/LinearVestingNFT.json create mode 100644 tasks/20230212-vesting-nft/build-info/VestingNFT.json create mode 100644 tasks/20230212-vesting-nft/contract-artifacts/LinearVestingNFT.json create mode 100644 tasks/20230212-vesting-nft/contract-artifacts/VestingNFT.json create mode 100644 tasks/20230212-vesting-nft/index.ts create mode 100644 tasks/20230212-vesting-nft/input.ts create mode 100644 tasks/20230212-vesting-nft/output/bscTestnet.json create mode 100644 tasks/20230212-vesting-nft/readme.md create mode 100644 tasks/20xxxxxx-template/build-info/.gitkeep create mode 100644 tasks/20xxxxxx-template/contract-artifacts/.gitkeep create mode 100644 tasks/20xxxxxx-template/index.ts create mode 100644 tasks/20xxxxxx-template/input.ts create mode 100644 tasks/20xxxxxx-template/output/.gitkeep create mode 100644 tasks/20xxxxxx-template/readme.md create mode 100644 test/LinearVestingNFT.test.ts create mode 100644 test/VestingNFT.test.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..eda3872 --- /dev/null +++ b/.env.example @@ -0,0 +1,22 @@ +# Seed phrase used for mainnet deployments +MAINNET_MNEMONIC= +# Seed phrase used for testnet deployments +TESTNET_MNEMONIC= + +# EVM Explorer API Keys (For Verification) +ETHERSCAN_API_KEY= +BSCSCAN_API_KEY= +POLYGONSCAN_API_KEY= +OPTIMISTIC_ETHERSCAN_API_KEY= +ARBISCAN_API_KEY= + +# Options +REPORT_GAS= + +# (Optional overrides) RPC URLS +MAINNET_RPC_URL= +ROPSTEN_RPC_URL= +BSC_RPC_URL= +BSC_TESTNET_RPC_URL= +POLYGON_RPC_URL= +POLYGON_TESTNET_RPC_URL= diff --git a/.github/workflows/lint-test.yml b/.github/workflows/lint-test.yml new file mode 100644 index 0000000..8f7a27c --- /dev/null +++ b/.github/workflows/lint-test.yml @@ -0,0 +1,36 @@ +name: lint & test + +on: + push: + branches: + - main + pull_request: + +jobs: + test: + strategy: + matrix: + node: ['16.x'] + os: [ubuntu-latest] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + + - run: npm install -g yarn + + - id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ matrix.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ matrix.os }}-yarn- + - run: yarn + - run: yarn lint:ci + - run: yarn test:ci \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7d1ccbb --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +node_modules +.vscode +.env +coverage +coverage.json +typechain +typechain-types + +#Hardhat files +cache +artifacts + +#Module +dist diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 0000000..243f68d --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,11 @@ +{ + "require": "hardhat/register", + "timeout": 40000, + "_": [ + "test/**/*.ts" + ], + "DEV-COMMENTS": { + "warning": "Running test directly from Visual Studio Code won't compile your contracts automatically. Make sure compile them manually.", + "source": "https://hardhat.org/hardhat-runner/docs/advanced/vscode-tests" + } +} \ No newline at end of file diff --git a/.solhintignore b/.solhintignore new file mode 100644 index 0000000..a14aed0 --- /dev/null +++ b/.solhintignore @@ -0,0 +1 @@ +# Use this file to ignore .sol files from solhint linting \ No newline at end of file diff --git a/EIP-draft.md b/EIP-draft.md new file mode 100644 index 0000000..38c21d2 --- /dev/null +++ b/EIP-draft.md @@ -0,0 +1,279 @@ +--- +eip: 5725 +title: Transferable Vesting NFT +description: An interface for transferable vesting NFTs which release underlying tokens over time. +author: Apeguru (@Apegurus), Marco De Vries , Mario , DeFiFoFum (@DeFiFoFum), Elliott Green (@elliott-green) +discussions-to: https://ethereum-magicians.org/t/eip-5725-transferable-vesting-nft/11099 +status: Draft +type: Standards Track +category: ERC +created: 2022-09-08 +requires: 721 +--- + +## Abstract + +A **Non-Fungible Token** (NFT) standard used to vest tokens ([EIP-20](./eip-20.md) or otherwise) over a vesting release curve. + +The following standard allows for the implementation of a standard API for NFT based contracts that hold and represent the vested and locked properties of any underlying token ([EIP-20](./eip-20.md) or otherwise) that is emitted to the NFT holder. This standard is an extension of the [EIP-721](./eip-721.md) token that provides basic functionality for creating vesting NFTs, claiming the tokens and reading vesting curve properties. + +## Motivation + +Vesting contracts, including timelock contracts, lack a standard and unified interface, which results in diverse implementations of such contracts. Standardizing such contracts into a single interface would allow for the creation of an ecosystem of on- and off-chain tooling around these contracts. In addition, liquid vesting in the form of non-fungible assets can prove to be a huge improvement over traditional **Simple Agreement for Future Tokens** (SAFTs) or **Externally Owned Account** (EOA)-based vesting as it enables transferability and the ability to attach metadata similar to the existing functionality offered by with traditional NFTs. + +Such a standard will not only provide a much-needed [EIP-20](./eip-20.md) token lock standard, but will also enable the creation of secondary marketplaces tailored for semi-liquid SAFTs. + +This standard also allows for a variety of different vesting curves to be implement easily. + +These curves could represent: + +- linear vesting +- cliff vesting +- exponential vesting +- custom deterministic vesting + +### Use Cases + +1. A framework to release tokens over a set period of time that can be used to build many kinds of NFT financial products such as bonds, treasury bills, and many others. +2. Replicating SAFT contracts in a standardized form of semi-liquid vesting NFT assets. + - SAFTs are generally off-chain, while today's on-chain versions are mainly address-based, which makes distributing vesting shares to many representatives difficult. Standardization simplifies this convoluted process. +3. Providing a path for the standardization of vesting and token timelock contracts. + - There are many such contracts in the wild and most of them differ in both interface and implementation. +4. NFT marketplaces dedicated to vesting NFTs. + - Whole new sets of interfaces and analytics could be created from a common standard for token vesting NFTs. +5. Integrating vesting NFTs into services like Safe Wallet. + - A standard would mean services like Safe Wallet could more easily and uniformly support interactions with these types of contracts inside of a multisig contract. +6. Enable standardized fundraising implementations and general fundraising that sell vesting tokens (eg. SAFTs) in a more transparent manner. +7. Allows tools, front-end apps, aggregators, etc. to show a more holistic view of the vesting tokens and the properties available to users. + - Currently, every project needs to write their own visualization of the vesting schedule of their vesting assets. If this is standardized, third-party tools could be developed to aggregate all vesting NFTs from all projects for the user, display their schedules and allow the user to take aggregated vesting actions. + - Such tooling can easily discover compliance through the [EIP-165](./eip-165.md) `supportsInterface(InterfaceID)` check. +8. Makes it easier for a single wrapping implementation to be used across all vesting standards that defines multiple recipients, periodic renting of vesting tokens etc. + +## Specification + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. + +```solidity +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.0; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; + +/** + * @title Non-Fungible Vesting Token Standard. + * @notice A non-fungible token standard used to vest ERC-20 tokens over a vesting release curve + * scheduled using timestamps. + * @dev Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the + * tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than allotted for a specific Vesting NFT. + * @custom:interface-id 0xbd3a202b + */ +interface IERC5725 is IERC721 { + /** + * This event is emitted when the payout is claimed through the claim function. + * @param tokenId the NFT tokenId of the assets being claimed. + * @param recipient The address which is receiving the payout. + * @param claimAmount The amount of tokens being claimed. + */ + event PayoutClaimed(uint256 indexed tokenId, address indexed recipient, uint256 claimAmount); + + /** + * This event is emitted when an `owner` sets an address to manage token claims for all tokens. + * @param owner The address setting a manager to manage all tokens. + * @param spender The address being permitted to manage all tokens. + * @param approved A boolean indicating whether the spender is approved to claim for all tokens. + */ + event ClaimApprovalForAll(address indexed owner, address indexed spender, bool approved); + + /** + * This event is emitted when an `owner` sets an address to manage token claims for a `tokenId`. + * @param owner The `owner` of `tokenId`. + * @param spender The address being permitted to manage a tokenId. + * @param tokenId The unique identifier of the token being managed. + * @param approved A boolean indicating whether the spender is approved to claim for `tokenId`. + */ + event ClaimApproval(address indexed owner, address indexed spender, uint256 indexed tokenId, bool approved); + + /** + * @notice Claim the pending payout for the NFT. + * @dev MUST grant the claimablePayout value at the time of claim being called to `msg.sender`. + * MUST revert if not called by the token owner or approved users. + * MUST emit PayoutClaimed. + * SHOULD revert if there is nothing to claim. + * @param tokenId The NFT token id. + */ + function claim(uint256 tokenId) external; + + /** + * @notice Sets a global `operator` with permission to manage all tokens owned by the current `msg.sender`. + * @param operator The address to let manage all tokens. + * @param approved A boolean indicating whether the spender is approved to claim for all tokens. + */ + function setClaimApprovalForAll(address operator, bool approved) external; + + /** + * @notice Sets a tokenId `operator` with permission to manage a single `tokenId` owned by the `msg.sender`. + * @param operator The address to let manage a single `tokenId`. + * @param tokenId the `tokenId` to be managed. + * @param approved A boolean indicating whether the spender is approved to claim for all tokens. + */ + function setClaimApproval(address operator, bool approved, uint256 tokenId) external; + + /** + * @notice Number of tokens for the NFT which have been claimed at the current timestamp. + * @param tokenId The NFT token id. + * @return payout The total amount of payout tokens claimed for this NFT. + */ + function claimedPayout(uint256 tokenId) external view returns (uint256 payout); + + /** + * @notice Number of tokens for the NFT which can be claimed at the current timestamp. + * @dev It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`. + * @param tokenId The NFT token id. + * @return payout The amount of unlocked payout tokens for the NFT which have not yet been claimed. + */ + function claimablePayout(uint256 tokenId) external view returns (uint256 payout); + + /** + * @notice Total amount of tokens which have been vested at the current timestamp. + * This number also includes vested tokens which have been claimed. + * @dev It is RECOMMENDED that this function calls `vestedPayoutAtTime` + * with `block.timestamp` as the `timestamp` parameter. + * @param tokenId The NFT token id. + * @return payout Total amount of tokens which have been vested at the current timestamp. + */ + function vestedPayout(uint256 tokenId) external view returns (uint256 payout); + + /** + * @notice Total amount of vested tokens at the provided timestamp. + * This number also includes vested tokens which have been claimed. + * @dev `timestamp` MAY be both in the future and in the past. + * Zero MUST be returned if the timestamp is before the token was minted. + * @param tokenId The NFT token id. + * @param timestamp The timestamp to check on, can be both in the past and the future. + * @return payout Total amount of tokens which have been vested at the provided timestamp. + */ + function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) external view returns (uint256 payout); + + /** + * @notice Number of tokens for an NFT which are currently vesting. + * @dev The sum of vestedPayout and vestingPayout SHOULD always be the total payout. + * @param tokenId The NFT token id. + * @return payout The number of tokens for the NFT which are vesting until a future date. + */ + function vestingPayout(uint256 tokenId) external view returns (uint256 payout); + + /** + * @notice The start and end timestamps for the vesting of the provided NFT. + * MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`. + * @param tokenId The NFT token id. + * @return vestingStart The beginning of the vesting as a unix timestamp. + * @return vestingEnd The ending of the vesting as a unix timestamp. + */ + function vestingPeriod(uint256 tokenId) external view returns (uint256 vestingStart, uint256 vestingEnd); + + /** + * @notice Token which is used to pay out the vesting claims. + * @param tokenId The NFT token id. + * @return token The token which is used to pay out the vesting claims. + */ + function payoutToken(uint256 tokenId) external view returns (address token); + + /** + * @notice Returns true if `owner` has set `operator` to manage all `tokenId`s. + * @param owner The owner allowing `operator` to manage all `tokenId`s. + * @param operator The address who is given permission to spend tokens on behalf of the `owner`. + */ + function isClaimApprovedForAll(address owner, address operator) external view returns (bool isClaimApproved); + + /** + * @notice Returns the operating address for a `tokenId`. + * If `tokenId` is not managed, then returns the zero address. + * @param tokenId The NFT `tokenId` to query for a `tokenId` manager. + */ + function getClaimApproved(uint256 tokenId) external view returns (address operator); +} +``` + +## Rationale + +### Terms + +These are base terms used around the specification which function names and definitions are based on. + +- _vesting_: Tokens which a vesting NFT is vesting until a future date. +- _vested_: Total amount of tokens a vesting NFT has vested. +- _claimable_: Amount of vested tokens which can be unlocked. +- _claimed_: Total amount of tokens unlocked from a vesting NFT. +- _timestamp_: The unix `timestamp` (seconds) representation of dates used for vesting. + +### Vesting Functions + +**`vestingPayout` + `vestedPayout`** + +`vestingPayout(uint256 tokenId)` and `vestedPayout(uint256 tokenId)` add up to the total number of tokens which can be claimed by the end of of the vesting schedule. This is also equal to `vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)` with `type(uint256).max` as the `timestamp`. + +The rationale for this is to guarantee that the tokens `vested` and tokens `vesting` are always in sync. The intent is that the vesting curves created are deterministic across the `vestingPeriod`. This creates useful opportunities for integration with these NFTs. For example: A vesting schedule can be iterated through and a vesting curve could be visualized, either on-chain or off-chain. + +**`vestedPayout` vs `claimedPayout` & `claimablePayout`** + +```solidity +vestedPayout - claimedPayout - claimablePayout = lockedPayout +``` + +- `vestedPayout(uint256 tokenId)` provides the total amount of payout tokens which have **vested** _including `claimedPayout(uint256 tokenId)`_. +- `claimedPayout(uint256 tokenId)` provides the total amount of payout tokens which have been unlocked at the current `timestamp`. +- `claimablePayout(uint256 tokenId)` provides the amount of payout tokens which can be unlocked at the current `timestamp`. + +The rationale for providing three functions is to support a number of features: + +1. The return of `vestedPayout(uint256 tokenId)` will always match the return of `vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)` with `block.timestamp` as the `timestamp`. +2. `claimablePayout(uint256 tokenId)` can be used to easily see the current payout unlock amount and allow for unlock cliffs by returning zero until a `timestamp` has been passed. +3. `claimedPayout(uint256 tokenId)` is helpful to see tokens unlocked from an NFT and it is also necessary for the calculation of vested-but-locked payout tokens: `vestedPayout - claimedPayout - claimablePayout = lockedPayout`. This would depend on how the vesting curves are configured by the an implementation of this standard. + +`vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)` provides functionality to iterate through the `vestingPeriod(uint256 tokenId)` and provide a visual of the release curve. The intent is that release curves are created which makes `vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)` deterministic. + +### Timestamps + +Generally in Solidity development it is advised against using `block.timestamp` as a state dependant variable as the timestamp of a block can be manipulated by a miner. The choice to use a `timestamp` over a `block` is to allow the interface to work across multiple **Ethereum Virtual Machine** (EVM) compatible networks which generally have different block times. Block proposal with a significantly fabricated timestamp will generally be dropped by all node implementations which makes the window for abuse negligible. + +The `timestamp` makes cross chain integration easy, but internally, the reference implementation keeps track of the token payout per Vesting NFT to ensure that excess tokens alloted by the vesting terms cannot be claimed. + +### Limitation of Scope + +- **Historical claims**: While historical vesting schedules can be determined on-chain with `vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)`, historical claims would need to be calculated through historical transaction data. Most likely querying for `PayoutClaimed` events to build a historical graph. + +### Extension Possibilities + +These feature are not supported by the standard as is, but the standard could be extended to support these more advanced features. + +- **Custom Vesting Curves**: This standard intends on returning deterministic `vesting` values given NFT `tokenId` and a **timestamp** as inputs. This is intentional as it provides for flexibility in how the vesting curves work under the hood which doesn't constrain projects who intend on building a complex smart contract vesting architecture. +- **NFT Rentals**: Further complex DeFi tools can be created if vesting NFTs could be rented. + +This is done intentionally to keep the base standard simple. These features can and likely will be added through extensions of this standard. + +## Backwards Compatibility + +- The Vesting NFT standard is meant to be fully backwards compatible with any current [EIP-721](./eip-721.md) integrations and marketplaces. +- The Vesting NFT standard also supports [EIP-165](./eip-165.md) interface detection for detecting `EIP-721` compatibility, as well as Vesting NFT compatibility. + +## Test Cases + +The reference vesting NFT repository includes tests written in Hardhat. + +## Reference Implementation + +A reference implementation of this EIP can be found in [eip-5725 assets](../assets/eip-5725/README.md). + +## Security Considerations + +**timestamps** + +- Vesting schedules are based on timestamps. As such, it's important to keep track of the number of tokens which have been claimed and to not give out more tokens than alloted for a specific Vesting NFT. + - `vestedPayoutAtTime(tokenId, type(uint256).max)`, for example, must return the total payout for a given `tokenId` + +**approvals** + +- When an approval is made on a Vesting NFT, the operator would have the rights to transfer the Vesting NFT to themselves and then claim the vested tokens. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..43264fa --- /dev/null +++ b/README.md @@ -0,0 +1,132 @@ +# ERC-5725: Transferrable Vesting NFT - Reference Implementation +[![lint & test](https://github.com/ERC-5725/ERC-5725-reference/actions/workflows/lint-test.yml/badge.svg)](https://github.com/ERC-5725/ERC-5725-reference/actions/workflows/lint-test.yml) +[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-yellow)](./docs/) +[![License](https://img.shields.io/badge/License-GPLv3-green.svg)](https://www.gnu.org/licenses/gpl-3.0) + +This repository serves as both a reference implementation and an sdk module for ERC-5725 Transferrable Vesting NFT Standard. + +## EIP-5725 + +"A Non-Fungible Token (NFT) standard used to vest ERC-20 over a vesting release curve." + +Find the official [EIP located here](https://eips.ethereum.org/EIPS/eip-5725). + +## Examples + +The [ethers example](./examples/getVestingPeriod.ts) can be run quickly with `yarn example`. + +This [solidity reference](./contracts/reference/LinearVestingNFT.sol) shows how to extend `ERC5725.sol` to quickly create a transferrable vesting NFT. + +## `@erc-5725/sdk` Package Usage + +### Installation + +Add the ERC-5725 module to your Solidity, Frontend and/or Backend application. + +```shell +npm install @erc-5725/sdk +# OR +yarn add @erc-5725/sdk +``` + +### Usage with Solidity Smart Contracts + +Extend `ERC5725.sol` to quickly create a transferrable Vesting NFT contract implementation. + +```js +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.0; + +import "@erc-5725/sdk/contracts/ERC5725.sol"; + +contract LinearVestingNFT is ERC5725 { ... } +``` + +### Usage with Frontend/Backend Node Applications + +Quickly interact with an ERC5725 contract by providing an `ethers` provider. + +#### Quickly Read ERC-5725 Values + +By simply passing an RPC provider URL, state from an ERC-5725 contract can be read quickly. + +```ts +// Import ERC-5725 contract helper function +import { getERC5725Contract, IERC5725_Artifact } from '@erc-5725/sdk' +const IERC5725_ABI = IERC5725_Artifact.abi +import { ethers } from 'ethers' +// Very quickly send txs to/read from type safe ERC-5725 contract +const provider = await ethers.getDefaultProvider('https://bscrpc.com') +// Obtain a type safe ERC-7525 contract +const erc5725Contract = getERC5725Contract('', provider) +// Read vestingPeriod +const { vestingStart, vestingEnd } = await erc5725Contract.vestingPeriod('') +``` + +#### MetaMask Integration + +By simply passing an RPC provider URL, state from an ERC-5725 contract can be read quickly. + +```ts +// Import ERC-5725 contract helper function +import { getERC5725Contract, IERC5725_Artifact } from '@erc-5725/sdk' +const IERC5725_ABI = IERC5725_Artifact.abi +import { ethers } from 'ethers' +// Pull out the injected ethereum provider from MetaMask in browser +const { ethereum } = window +const provider = new ethers.providers.Web3Provider(ethereum) +const signer = provider.getSigner() +// Setup ERC-5725 instance with a signer +const erc5725Contract = getERC5725Contract('', signer) +// Claim payoutTokens +const tx = await erc5725Contract.claim('') +await tx.wait() +``` + +## Usage via Clone + +- `git clone git@github.com:ERC-5725/ERC-5725-reference.git` +- `cd ERC-5725-reference` +- `yarn` +- Copy [.env.example](./.env.example) and rename to `.env` + - Provide the necessary `env` variables before deployment/verification + - `MAINNET_MNEMONIC`/`TESTNET_MNEMONIC` for deployments + - `_API_KEY` for verifications +- [hardhat.config.ts](./hardhat.config.ts): Can be configured with additional networks if needed + +### Deployment and Verification + +This project uses special tasks, adapted from Balancer protocol, to deploy and verify contracts which provides methods for saving custom outputs and easily verifying contracts as well as compartmentalizing different types of deployments. + +#### Default (yarn script) Deployment and Verification + +Deploy [20230212-vesting-nft](./tasks/20230212-vesting-nft/) task to the network of your choice +`yarn deploy ` + +
+ +Verify [20230212-vesting-nft](./tasks/20230212-vesting-nft/) on the network of your choice +`yarn verify --name ` + +#### Hardhat Deployment and Verification + +Deploy using hardhat tasks +`npx hardhat deploy --id 20230212-vesting-nft --network ` + +
+ +Verify using hardhat tasks +`npx hardhat verify-contract --id 20230212-vesting-nft --network --name ` + + +### Linting + +This project uses Prettier, an opinionated code formatter, to keep code styles consistent. This project has additional plugins for Solidity support as well. + +#### Linting Solidity Code + +- [prettier.config.js](./prettier.config.js): Provide config settings for Solidity under `overrides`. +- [.solhint.json](./.solhint.json): Provide config settings for `solhint`. + +- `yarn lint`: Lint Solidity & TS/JS files +- `yarn lint:fix`: Fix Solidity & TS/JS files diff --git a/contracts/ERC5725.sol b/contracts/ERC5725.sol new file mode 100644 index 0000000..c7bf27b --- /dev/null +++ b/contracts/ERC5725.sol @@ -0,0 +1,235 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.17; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; +/// @dev Official ERC-5725 interface +import "@erc-5725/interfaces/IERC5725.sol"; + +abstract contract ERC5725 is IERC5725, ERC721 { + using SafeERC20 for IERC20; + + /// @dev mapping for claimed payouts + mapping(uint256 => uint256) /*tokenId*/ /*claimed*/ internal _payoutClaimed; + + /// @dev Mapping from token ID to approved tokenId operator + mapping(uint256 => address) private _tokenIdApprovals; + + /// @dev Mapping from owner to operator approvals + mapping(address => mapping(address => bool)) /* owner */ /*(operator, isApproved)*/ internal _operatorApprovals; + + /** + * @notice Checks if the tokenId exists and its valid + * @param tokenId The NFT token id + */ + modifier validToken(uint256 tokenId) { + require(_exists(tokenId), "ERC5725: invalid token ID"); + _; + } + + /** + * @dev See {IERC5725}. + */ + function claim(uint256 tokenId) external override(IERC5725) validToken(tokenId) { + require(isApprovedClaimOrOwner(msg.sender, tokenId), "ERC5725: not owner or operator"); + + uint256 amountClaimed = claimablePayout(tokenId); + require(amountClaimed > 0, "ERC5725: No pending payout"); + + emit PayoutClaimed(tokenId, msg.sender, amountClaimed); + + _payoutClaimed[tokenId] += amountClaimed; + IERC20(payoutToken(tokenId)).safeTransfer(msg.sender, amountClaimed); + } + + /** + * @dev See {IERC5725}. + */ + function setClaimApprovalForAll(address operator, bool approved) external override(IERC5725) { + _setClaimApprovalForAll(operator, approved); + emit ClaimApprovalForAll(msg.sender, operator, approved); + } + + /** + * @dev See {IERC5725}. + */ + function setClaimApproval( + address operator, + bool approved, + uint256 tokenId + ) external override(IERC5725) validToken(tokenId) { + _setClaimApproval(operator, tokenId); + emit ClaimApproval(msg.sender, operator, tokenId, approved); + } + + /** + * @dev See {IERC5725}. + */ + function vestedPayout(uint256 tokenId) public view override(IERC5725) returns (uint256 payout) { + return vestedPayoutAtTime(tokenId, block.timestamp); + } + + /** + * @dev See {IERC5725}. + */ + function vestedPayoutAtTime( + uint256 tokenId, + uint256 timestamp + ) public view virtual override(IERC5725) returns (uint256 payout); + + /** + * @dev See {IERC5725}. + */ + function vestingPayout( + uint256 tokenId + ) public view override(IERC5725) validToken(tokenId) returns (uint256 payout) { + return _payout(tokenId) - vestedPayout(tokenId); + } + + /** + * @dev See {IERC5725}. + */ + function claimablePayout( + uint256 tokenId + ) public view override(IERC5725) validToken(tokenId) returns (uint256 payout) { + return vestedPayout(tokenId) - _payoutClaimed[tokenId]; + } + + /** + * @dev See {IERC5725}. + */ + function claimedPayout( + uint256 tokenId + ) public view override(IERC5725) validToken(tokenId) returns (uint256 payout) { + return _payoutClaimed[tokenId]; + } + + /** + * @dev See {IERC5725}. + */ + function vestingPeriod( + uint256 tokenId + ) public view override(IERC5725) validToken(tokenId) returns (uint256 vestingStart, uint256 vestingEnd) { + return (_startTime(tokenId), _endTime(tokenId)); + } + + /** + * @dev See {IERC5725}. + */ + function payoutToken(uint256 tokenId) public view override(IERC5725) validToken(tokenId) returns (address token) { + return _payoutToken(tokenId); + } + + /** + * @dev See {IERC165-supportsInterface}. + * IERC5725 interfaceId = 0xbd3a202b + */ + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(ERC721, IERC165) returns (bool supported) { + return interfaceId == type(IERC5725).interfaceId || super.supportsInterface(interfaceId); + } + + /** + * @dev See {IERC5725}. + */ + function getClaimApproved(uint256 tokenId) public view returns (address operator) { + return _tokenIdApprovals[tokenId]; + } + + /** + * @dev Returns true if `owner` has set `operator` to manage all `tokenId`s. + * @param owner The owner allowing `operator` to manage all `tokenId`s. + * @param operator The address who is given permission to spend tokens on behalf of the `owner`. + */ + function isClaimApprovedForAll(address owner, address operator) public view returns (bool isClaimApproved) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev Public view which returns true if the operator has permission to claim for `tokenId` + * @notice To remove permissions, set operator to zero address. + * + * @param operator The address that has permission for a `tokenId`. + * @param tokenId The NFT `tokenId`. + */ + function isApprovedClaimOrOwner(address operator, uint256 tokenId) public view virtual returns (bool) { + address owner = ownerOf(tokenId); + return (operator == owner || isClaimApprovedForAll(owner, operator) || getClaimApproved(tokenId) == operator); + } + + /** + * @dev Internal function to set the operator status for a given owner to manage all `tokenId`s. + * @notice To remove permissions, set approved to false. + * + * @param operator The address who is given permission to spend vested tokens. + * @param approved The approved status. + */ + function _setClaimApprovalForAll(address operator, bool approved) internal virtual { + _operatorApprovals[msg.sender][operator] = approved; + } + + /** + * @dev Internal function to set the operator status for a given tokenId. + * @notice To remove permissions, set operator to zero address. + * + * @param operator The address who is given permission to spend vested tokens. + * @param tokenId The NFT `tokenId`. + */ + function _setClaimApproval(address operator, uint256 tokenId) internal virtual { + require(ownerOf(tokenId) == msg.sender, "ERC5725: not owner of tokenId"); + _tokenIdApprovals[tokenId] = operator; + } + + /** + * @dev Internal function to hook into {IERC721-_afterTokenTransfer}, when a token is being transferred. + * Removes permissions to _tokenIdApprovals[tokenId] when the tokenId is transferred, burnt, but not on mint. + * + * @param from The address from which the tokens are being transferred. + * @param to The address to which the tokens are being transferred. + * @param firstTokenId The first tokenId in the batch that is being transferred. + * @param batchSize The number of tokens being transferred in this batch. + */ + function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal override { + super._beforeTokenTransfer(from, to, firstTokenId, batchSize); + if (from != address(0)) { + delete _tokenIdApprovals[firstTokenId]; + } + } + + /** + * @dev Internal function to get the payout token of a given vesting NFT + * + * @param tokenId on which to check the payout token address + * @return address payout token address + */ + function _payoutToken(uint256 tokenId) internal view virtual returns (address); + + /** + * @dev Internal function to get the total payout of a given vesting NFT. + * @dev This is the total that will be paid out to the NFT owner, including historical tokens. + * + * @param tokenId to check + * @return uint256 the total payout of a given vesting NFT + */ + function _payout(uint256 tokenId) internal view virtual returns (uint256); + + /** + * @dev Internal function to get the start time of a given vesting NFT + * + * @param tokenId to check + * @return uint256 the start time in epoch timestamp + */ + function _startTime(uint256 tokenId) internal view virtual returns (uint256); + + /** + * @dev Internal function to get the end time of a given vesting NFT + * + * @param tokenId to check + * @return uint256 the end time in epoch timestamp + */ + function _endTime(uint256 tokenId) internal view virtual returns (uint256); +} diff --git a/contracts/mocks/ERC20Mock.sol b/contracts/mocks/ERC20Mock.sol new file mode 100644 index 0000000..f69ceed --- /dev/null +++ b/contracts/mocks/ERC20Mock.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity 0.8.17; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract ERC20Mock is ERC20 { + uint8 private _decimals; + + constructor(uint256 supply_, uint8 decimals_, string memory name_, string memory symbol_) ERC20(name_, symbol_) { + _mint(msg.sender, supply_); + _decimals = decimals_; + } + + function mint(uint256 amount, address to) public { + _mint(to, amount); + } + + function decimals() public view virtual override returns (uint8) { + return _decimals; + } +} diff --git a/contracts/reference/LinearVestingNFT.sol b/contracts/reference/LinearVestingNFT.sol new file mode 100644 index 0000000..b8977a8 --- /dev/null +++ b/contracts/reference/LinearVestingNFT.sol @@ -0,0 +1,116 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.17; + +import "../ERC5725.sol"; + +contract LinearVestingNFT is ERC5725 { + using SafeERC20 for IERC20; + + struct VestDetails { + IERC20 payoutToken; /// @dev payout token + uint256 payout; /// @dev payout token remaining to be paid + uint128 startTime; /// @dev when vesting starts + uint128 endTime; /// @dev when vesting end + uint128 cliff; /// @dev duration in seconds of the cliff in which tokens will be begin releasing + } + mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds + + /// @dev tracker of current NFT id + uint256 private _tokenIdTracker; + + /** + * @dev See {IERC5725}. + */ + constructor(string memory name, string memory symbol) ERC721(name, symbol) {} + + /** + * @notice Creates a new vesting NFT and mints it + * @dev Token amount should be approved to be transferred by this contract before executing create + * @param to The recipient of the NFT + * @param amount The total assets to be locked over time + * @param startTime When the vesting starts in epoch timestamp + * @param duration The vesting duration in seconds + * @param cliff The cliff duration in seconds + * @param token The ERC20 token to vest over time + */ + function create( + address to, + uint256 amount, + uint128 startTime, + uint128 duration, + uint128 cliff, + IERC20 token + ) public virtual { + require(startTime >= block.timestamp, "startTime cannot be on the past"); + require(to != address(0), "to cannot be address 0"); + require(cliff <= duration, "duration needs to be more than cliff"); + + uint256 newTokenId = _tokenIdTracker; + + vestDetails[newTokenId] = VestDetails({ + payoutToken: token, + payout: amount, + startTime: startTime, + endTime: startTime + duration, + cliff: startTime + cliff + }); + + _tokenIdTracker++; + _mint(to, newTokenId); + IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount); + } + + /** + * @dev See {IERC5725}. + */ + function vestedPayoutAtTime( + uint256 tokenId, + uint256 timestamp + ) public view override(ERC5725) validToken(tokenId) returns (uint256 payout) { + if (timestamp < _cliff(tokenId)) { + return 0; + } + if (timestamp > _endTime(tokenId)) { + return _payout(tokenId); + } + return (_payout(tokenId) * (timestamp - _startTime(tokenId))) / (_endTime(tokenId) - _startTime(tokenId)); + } + + /** + * @dev See {ERC5725}. + */ + function _payoutToken(uint256 tokenId) internal view override returns (address) { + return address(vestDetails[tokenId].payoutToken); + } + + /** + * @dev See {ERC5725}. + */ + function _payout(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].payout; + } + + /** + * @dev See {ERC5725}. + */ + function _startTime(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].startTime; + } + + /** + * @dev See {ERC5725}. + */ + function _endTime(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].endTime; + } + + /** + * @dev Internal function to get the cliff time of a given linear vesting NFT + * + * @param tokenId to check + * @return uint256 the cliff time in seconds + */ + function _cliff(uint256 tokenId) internal view returns (uint256) { + return vestDetails[tokenId].cliff; + } +} diff --git a/contracts/reference/VestingNFT.sol b/contracts/reference/VestingNFT.sol new file mode 100644 index 0000000..4b181f4 --- /dev/null +++ b/contracts/reference/VestingNFT.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.17; + +import "../ERC5725.sol"; + +contract VestingNFT is ERC5725 { + using SafeERC20 for IERC20; + + struct VestDetails { + IERC20 payoutToken; /// @dev payout token + uint256 payout; /// @dev payout token remaining to be paid + uint128 startTime; /// @dev when vesting starts + uint128 endTime; /// @dev when vesting end + } + mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds + + /// @dev tracker of current NFT id + uint256 private _tokenIdTracker; + + /** + * @dev Initializes the contract by setting a `name` and a `symbol` to the token. + */ + constructor(string memory name, string memory symbol) ERC721(name, symbol) {} + + /** + * @notice Creates a new vesting NFT and mints it + * @dev Token amount should be approved to be transferred by this contract before executing create + * @param to The recipient of the NFT + * @param amount The total assets to be locked over time + * @param releaseTimestamp When the full amount of tokens get released + * @param token The ERC20 token to vest over time + */ + function create(address to, uint256 amount, uint128 releaseTimestamp, IERC20 token) public virtual { + require(to != address(0), "to cannot be address 0"); + require(releaseTimestamp > block.timestamp, "release must be in future"); + + uint256 newTokenId = _tokenIdTracker; + + vestDetails[newTokenId] = VestDetails({ + payoutToken: token, + payout: amount, + startTime: uint128(block.timestamp), + endTime: releaseTimestamp + }); + + _tokenIdTracker++; + _mint(to, newTokenId); + IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount); + } + + /** + * @dev See {IERC5725}. + */ + function vestedPayoutAtTime( + uint256 tokenId, + uint256 timestamp + ) public view override(ERC5725) validToken(tokenId) returns (uint256 payout) { + if (timestamp >= _endTime(tokenId)) { + return _payout(tokenId); + } + return 0; + } + + /** + * @dev See {ERC5725}. + */ + function _payoutToken(uint256 tokenId) internal view override returns (address) { + return address(vestDetails[tokenId].payoutToken); + } + + /** + * @dev See {ERC5725}. + */ + function _payout(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].payout; + } + + /** + * @dev See {ERC5725}. + */ + function _startTime(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].startTime; + } + + /** + * @dev See {ERC5725}. + */ + function _endTime(uint256 tokenId) internal view override returns (uint256) { + return vestDetails[tokenId].endTime; + } +} diff --git a/docs/ERC5725.md b/docs/ERC5725.md new file mode 100644 index 0000000..d1264da --- /dev/null +++ b/docs/ERC5725.md @@ -0,0 +1,162 @@ +# Solidity API + +## ERC5725 + +### _payoutClaimed + +```solidity +mapping(uint256 => uint256) _payoutClaimed +``` + +_mapping for claimed payouts_ + +### validToken + +```solidity +modifier validToken(uint256 tokenId) +``` + +Checks if the tokenId exists and its valid + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +### claim + +```solidity +function claim(uint256 tokenId) external +``` + +_See {IERC5725}._ + +### vestedPayout + +```solidity +function vestedPayout(uint256 tokenId) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### vestedPayoutAtTime + +```solidity +function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) public view virtual returns (uint256 payout) +``` + +_See {IERC5725}._ + +### vestingPayout + +```solidity +function vestingPayout(uint256 tokenId) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### claimablePayout + +```solidity +function claimablePayout(uint256 tokenId) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### claimedPayout + +```solidity +function claimedPayout(uint256 tokenId) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### vestingPeriod + +```solidity +function vestingPeriod(uint256 tokenId) public view returns (uint256 vestingStart, uint256 vestingEnd) +``` + +_See {IERC5725}._ + +### payoutToken + +```solidity +function payoutToken(uint256 tokenId) public view returns (address token) +``` + +_See {IERC5725}._ + +### supportsInterface + +```solidity +function supportsInterface(bytes4 interfaceId) public view virtual returns (bool supported) +``` + +_See {IERC165-supportsInterface}. +IERC5725 interfaceId = 0x7c89676d_ + +### _payoutToken + +```solidity +function _payoutToken(uint256 tokenId) internal view virtual returns (address) +``` + +_Internal function to get the payout token of a given vesting NFT_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | on which to check the payout token address | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| [0] | address | address payout token address | + +### _payout + +```solidity +function _payout(uint256 tokenId) internal view virtual returns (uint256) +``` + +_Internal function to get the total payout of a given vesting NFT. +This is the total that will be paid out to the NFT owner, including historical tokens._ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | to check | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| [0] | uint256 | uint256 the total payout of a given vesting NFT | + +### _startTime + +```solidity +function _startTime(uint256 tokenId) internal view virtual returns (uint256) +``` + +_Internal function to get the start time of a given vesting NFT_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | to check | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| [0] | uint256 | uint256 the start time in epoch timestamp | + +### _endTime + +```solidity +function _endTime(uint256 tokenId) internal view virtual returns (uint256) +``` + +_Internal function to get the end time of a given vesting NFT_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | to check | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| [0] | uint256 | uint256 the end time in epoch timestamp | + diff --git a/docs/IERC5725.md b/docs/IERC5725.md new file mode 100644 index 0000000..05f1503 --- /dev/null +++ b/docs/IERC5725.md @@ -0,0 +1,165 @@ +# Solidity API + +## IERC5725 + +A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve + scheduled using timestamps. + +_Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the + tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT._ + +### PayoutClaimed + +```solidity +event PayoutClaimed(uint256 tokenId, address recipient, uint256 claimAmount) +``` + +This event is emitted when the payout is claimed through the claim function + @param tokenId the NFT tokenId of the assets being claimed. + @param recipient The address which is receiving the payout. + @param claimAmount The amount of tokens being claimed. + +### claim + +```solidity +function claim(uint256 tokenId) external +``` + +Claim the pending payout for the NFT + +_MUST grant the claimablePayout value at the time of claim being called +MUST revert if not called by the token owner or approved users +MUST emit PayoutClaimed +SHOULD revert if there is nothing to claim_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +### claimedPayout + +```solidity +function claimedPayout(uint256 tokenId) external view returns (uint256 payout) +``` + +Number of tokens for the NFT which have been claimed at the current timestamp + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| payout | uint256 | The total amount of payout tokens claimed for this NFT | + +### claimablePayout + +```solidity +function claimablePayout(uint256 tokenId) external view returns (uint256 payout) +``` + +Number of tokens for the NFT which can be claimed at the current timestamp + +_It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`._ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| payout | uint256 | The amount of unlocked payout tokens for the NFT which have not yet been claimed | + +### vestedPayout + +```solidity +function vestedPayout(uint256 tokenId) external view returns (uint256 payout) +``` + +Total amount of tokens which have been vested at the current timestamp. + This number also includes vested tokens which have been claimed. + +_It is RECOMMENDED that this function calls `vestedPayoutAtTime` with + `block.timestamp` as the `timestamp` parameter._ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| payout | uint256 | Total amount of tokens which have been vested at the current timestamp. | + +### vestedPayoutAtTime + +```solidity +function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) external view returns (uint256 payout) +``` + +Total amount of vested tokens at the provided timestamp. + This number also includes vested tokens which have been claimed. + +_`timestamp` MAY be both in the future and in the past. +Zero MUST be returned if the timestamp is before the token was minted._ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | +| timestamp | uint256 | The timestamp to check on, can be both in the past and the future | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| payout | uint256 | Total amount of tokens which have been vested at the provided timestamp | + +### vestingPayout + +```solidity +function vestingPayout(uint256 tokenId) external view returns (uint256 payout) +``` + +Number of tokens for an NFT which are currently vesting. + +_The sum of vestedPayout and vestingPayout SHOULD always be the total payout._ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| payout | uint256 | The number of tokens for the NFT which are vesting until a future date. | + +### vestingPeriod + +```solidity +function vestingPeriod(uint256 tokenId) external view returns (uint256 vestingStart, uint256 vestingEnd) +``` + +The start and end timestamps for the vesting of the provided NFT +MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`. + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| vestingStart | uint256 | The beginning of the vesting as a unix timestamp | +| vestingEnd | uint256 | The ending of the vesting as a unix timestamp | + +### payoutToken + +```solidity +function payoutToken(uint256 tokenId) external view returns (address token) +``` + +Token which is used to pay out the vesting claims + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The NFT token id | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| token | address | The token which is used to pay out the vesting claims | + diff --git a/docs/LinearVestingNFT.md b/docs/LinearVestingNFT.md new file mode 100644 index 0000000..f91468f --- /dev/null +++ b/docs/LinearVestingNFT.md @@ -0,0 +1,113 @@ +# Solidity API + +## LinearVestingNFT + +### VestDetails + +```solidity +struct VestDetails { + contract IERC20 payoutToken; + uint256 payout; + uint128 startTime; + uint128 endTime; + uint128 cliff; +} +``` + +### vestDetails + +```solidity +mapping(uint256 => struct LinearVestingNFT.VestDetails) vestDetails +``` + +### _tokenIdTracker + +```solidity +uint256 _tokenIdTracker +``` + +_tracker of current NFT id_ + +### constructor + +```solidity +constructor(string name, string symbol) public +``` + +_See {IERC5725}._ + +### create + +```solidity +function create(address to, uint256 amount, uint128 startTime, uint128 duration, uint128 cliff, contract IERC20 token) public virtual +``` + +Creates a new vesting NFT and mints it + +_Token amount should be approved to be transferred by this contract before executing create_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| to | address | The recipient of the NFT | +| amount | uint256 | The total assets to be locked over time | +| startTime | uint128 | When the vesting starts in epoch timestamp | +| duration | uint128 | The vesting duration in seconds | +| cliff | uint128 | The cliff duration in seconds | +| token | contract IERC20 | The ERC20 token to vest over time | + +### vestedPayoutAtTime + +```solidity +function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### _payoutToken + +```solidity +function _payoutToken(uint256 tokenId) internal view returns (address) +``` + +_See {ERC5725}._ + +### _payout + +```solidity +function _payout(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + +### _startTime + +```solidity +function _startTime(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + +### _endTime + +```solidity +function _endTime(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + +### _cliff + +```solidity +function _cliff(uint256 tokenId) internal view returns (uint256) +``` + +_Internal function to get the cliff time of a given linear vesting NFT_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | to check | + +| Name | Type | Description | +| ---- | ---- | ----------- | +| [0] | uint256 | uint256 the cliff time in seconds | + diff --git a/docs/VestingNFT.md b/docs/VestingNFT.md new file mode 100644 index 0000000..9e33bc5 --- /dev/null +++ b/docs/VestingNFT.md @@ -0,0 +1,94 @@ +# Solidity API + +## VestingNFT + +### VestDetails + +```solidity +struct VestDetails { + contract IERC20 payoutToken; + uint256 payout; + uint128 startTime; + uint128 endTime; +} +``` + +### vestDetails + +```solidity +mapping(uint256 => struct VestingNFT.VestDetails) vestDetails +``` + +### _tokenIdTracker + +```solidity +uint256 _tokenIdTracker +``` + +_tracker of current NFT id_ + +### constructor + +```solidity +constructor(string name, string symbol) public +``` + +_Initializes the contract by setting a `name` and a `symbol` to the token._ + +### create + +```solidity +function create(address to, uint256 amount, uint128 releaseTimestamp, contract IERC20 token) public virtual +``` + +Creates a new vesting NFT and mints it + +_Token amount should be approved to be transferred by this contract before executing create_ + +| Name | Type | Description | +| ---- | ---- | ----------- | +| to | address | The recipient of the NFT | +| amount | uint256 | The total assets to be locked over time | +| releaseTimestamp | uint128 | When the full amount of tokens get released | +| token | contract IERC20 | The ERC20 token to vest over time | + +### vestedPayoutAtTime + +```solidity +function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) public view returns (uint256 payout) +``` + +_See {IERC5725}._ + +### _payoutToken + +```solidity +function _payoutToken(uint256 tokenId) internal view returns (address) +``` + +_See {ERC5725}._ + +### _payout + +```solidity +function _payout(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + +### _startTime + +```solidity +function _startTime(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + +### _endTime + +```solidity +function _endTime(uint256 tokenId) internal view returns (uint256) +``` + +_See {ERC5725}._ + diff --git a/examples/getVestingPeriod.ts b/examples/getVestingPeriod.ts new file mode 100644 index 0000000..0034092 --- /dev/null +++ b/examples/getVestingPeriod.ts @@ -0,0 +1,30 @@ +// import { getERC5725Contract, supportsIERC5725 } from '@erc-5725/sdk' +import { getERC5725Contract, supportsIERC5725 } from '../src' +import { ethers } from 'ethers'; + +async function script() { + const CONFIG = { + vestingNFT: '0xB75BE16984A27d3023e1cF744E2587e9Aa8750c9', + tokenId: 1, + } + const provider = await ethers.getDefaultProvider('https://bscrpc.com'); + const erc5725Contract = getERC5725Contract(CONFIG.vestingNFT, provider); + const supportsInterface = await supportsIERC5725(CONFIG.vestingNFT, provider) + + const { vestingStart, vestingEnd } = await erc5725Contract.vestingPeriod(CONFIG.tokenId) + + console.dir({vestingStart: vestingStart.toString(), vestingEnd: vestingEnd.toString(), supportsInterface}) +} + +(async function () { + try { + await script(); + console.log('🎉'); + process.exit(0); + } + catch (e) { + console.error('Error running script.') + console.dir(e); + process.exit(1); + } +}()); \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts new file mode 100644 index 0000000..5376cb9 --- /dev/null +++ b/hardhat.config.ts @@ -0,0 +1,225 @@ +import { HardhatUserConfig } from 'hardhat/config' +import '@nomicfoundation/hardhat-toolbox' +import 'solidity-coverage' +import 'solidity-docgen' + +import { task, types } from 'hardhat/config' +import { TASK_TEST } from 'hardhat/builtin-tasks/task-names' +import { HardhatRuntimeEnvironment, NetworkUserConfig } from 'hardhat/types' + +import { Task, Verifier, Network } from './hardhat' +import { getEnv, Logger, logger, testRunner } from './hardhat/utils' +import solhintConfig from './solhint.config' + +/** + * Deploy contracts based on a directory ID in tasks/ + * + * `npx hardhat deploy --id --network [--key --force --verbose]` + */ +task( + 'deploy', + 'hardhat deploy --id --network [--key --force --verbose]' +) + .addParam('id', 'Deployment task ID') + .addFlag('force', 'Ignore previous deployments') + .addOptionalParam('key', 'Etherscan API key to verify contracts') + .setAction( + async ( + args: { id: string; force?: boolean; key?: string; verbose?: boolean }, + hre: HardhatRuntimeEnvironment + ) => { + Logger.setDefaults(false, args.verbose || false) + const key = parseApiKey(hre.network.name as Network, args.key) + const verifier = key ? new Verifier(hre.network, key) : undefined + await Task.fromHRE(args.id, hre, verifier).run(args) + } + ) + +/** + * Verify contracts based on a directory ID in tasks/ + * + * eg: `npx hardhat verify-contract --id --network --name + * [--address --args --force --verbose]` + */ +task( + 'verify-contract', + 'hardhat verify-contract --id --network --name [--address --args --force --verbose]' +) + .addParam('id', 'Deployment task ID') + .addParam('name', 'Contract name') + .addOptionalParam('address', 'Contract address') + .addOptionalParam('args', 'ABI-encoded constructor arguments') + .addOptionalParam('key', 'Etherscan API key to verify contracts') + .setAction( + async ( + args: { + id: string + name: string + address?: string + key?: string + args?: string + verbose?: boolean + }, + hre: HardhatRuntimeEnvironment + ) => { + Logger.setDefaults(false, args.verbose || false) + const key = parseApiKey(hre.network.name as Network, args.key) + const verifier = key ? new Verifier(hre.network, key) : undefined + + await Task.fromHRE(args.id, hre, verifier).verify( + args.name, + args.address, + args.args + ) + } + ) + +task('print-tasks', 'Prints deployment tasks in tasks/').setAction( + async (args: { verbose?: boolean }) => { + Logger.setDefaults(false, args.verbose || false) + Task.printAllTask() + } +) + +/** + * Provide additional fork testing options + * + * eg: `npx hardhat test --fork --blockNumber ` + */ +task(TASK_TEST) + .addOptionalParam( + 'fork', + 'Optional network name to be forked block number to fork in case of running fork tests.' + ) + .addOptionalParam( + 'blockNumber', + 'Optional block number to fork in case of running fork tests.', + undefined, + types.int + ) + .setAction(testRunner) + +export const mainnetMnemonic = getEnv('MAINNET_MNEMONIC') +export const testnetMnemonic = getEnv('TESTNET_MNEMONIC') + +const networkConfig: Record = { + mainnet: { + // TODO: Add default network url + url: getEnv('MAINNET_RPC_URL') || '', + chainId: 1, + accounts: { + mnemonic: mainnetMnemonic, + }, + }, + ropsten: { + // TODO: Add default network url + url: getEnv('ROPSTEN_RPC_URL') || '', + chainId: 3, + accounts: { + mnemonic: testnetMnemonic, + }, + }, + bsc: { + url: getEnv('BSC_RPC_URL') || 'https://bsc-dataseed1.binance.org', + chainId: 56, + accounts: { + mnemonic: mainnetMnemonic, + }, + }, + bscTestnet: { + url: + getEnv('BSC_TESTNET_RPC_URL') || + 'https://data-seed-prebsc-1-s1.binance.org:8545', + chainId: 97, + accounts: { + mnemonic: testnetMnemonic, + }, + }, + polygon: { + url: + getEnv('POLYGON_RPC_URL') || 'https://matic-mainnet.chainstacklabs.com', + chainId: 137, + accounts: { + mnemonic: mainnetMnemonic, + }, + }, + polygonTestnet: { + url: + getEnv('POLYGON_TESTNET_RPC_URL') || 'https://rpc-mumbai.maticvigil.com/', + chainId: 80001, + accounts: { + mnemonic: testnetMnemonic, + }, + }, + // Placeholder for the configuration below. + hardhat: {}, +} + +const config: HardhatUserConfig = { + // Storing this single source of truth in `solhint.config.js` + solidity: solhintConfig.rules['compiler-version'][1], + networks: { + ...networkConfig, + hardhat: { + gas: 'auto', + gasPrice: 'auto', + }, + }, + gasReporter: { + // More options can be found here: + // https://www.npmjs.com/package/hardhat-gas-reporter + enabled: getEnv('REPORT_GAS') ? true : false, + currency: 'USD', + excludeContracts: [], + }, + docgen: { + outputDir: './docs', + pages: 'items', + exclude: ['Migrations.sol', '/mocks'], + }, + typechain: { + // outDir: 'src/types', // defaults to './typechain-types/' + target: 'ethers-v5', + // externalArtifacts: [], // optional array of glob patterns with external artifacts to process (for example external libs from node_modules) + alwaysGenerateOverloads: false, // should overloads with full signatures like deposit(uint256) be generated always, even if there are no overloads? + dontOverrideCompile: false, // defaults to false + }, + etherscan: { + /** + * // NOTE This is valid in the latest version of "@nomiclabs/hardhat-etherscan. + * This version breaks the src/task.ts file which hasn't been refactored yet + */ + // apiKey: { + // mainnet: getEnv('ETHERSCAN_API_KEY'), + // optimisticEthereum: getEnv('OPTIMISTIC_ETHERSCAN_API_KEY'), + // arbitrumOne: getEnv('ARBISCAN_API_KEY'), + // bsc: getEnv('BSCSCAN_API_KEY'), + // bscTestnet: getEnv('BSCSCAN_API_KEY'), + // polygon: getEnv('POLYGONSCAN_API_KEY'), + // polygonTestnet: getEnv('POLYGONSCAN_API_KEY'), + // }, + }, +} + +const parseApiKey = (network: Network, key?: string): string | undefined => { + return key || verificationConfig.etherscan.apiKey[network] +} + +/** + * Placeholder configuration for @nomiclabs/hardhat-etherscan to store verification API urls + */ +const verificationConfig: { etherscan: { apiKey: Record } } = { + etherscan: { + apiKey: { + hardhat: 'NO_API_KEY', + mainnet: getEnv('ETHERSCAN_API_KEY'), + ropsten: getEnv('ETHERSCAN_API_KEY'), + bsc: getEnv('BSCSCAN_API_KEY'), + bscTestnet: getEnv('BSCSCAN_API_KEY'), + polygon: getEnv('POLYGONSCAN_API_KEY'), + polygonTestnet: getEnv('POLYGONSCAN_API_KEY'), + }, + }, +} + +export default config diff --git a/hardhat/evm/contracts.ts b/hardhat/evm/contracts.ts new file mode 100644 index 0000000..a3c3f82 --- /dev/null +++ b/hardhat/evm/contracts.ts @@ -0,0 +1,53 @@ +import { Contract, utils } from 'ethers' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/dist/src/signer-with-address' + +import { getSigner } from './signers' +import { Artifact, Libraries, Param } from '../types' + +export async function deploy( + artifact: Artifact, + args: Array = [], + from?: SignerWithAddress, + libs?: Libraries +): Promise { + if (!args) args = [] + if (!from) from = await getSigner() + if (libs) artifact = linkBytecode(artifact, libs) + + const { ethers } = await import('hardhat') + const factory = await ethers.getContractFactory( + artifact.abi, + artifact.evm.bytecode.object as utils.BytesLike + ) + const deployment = await factory.connect(from).deploy(...args) + return deployment.deployed() +} + +export async function instanceAt( + artifact: Artifact, + address: string +): Promise { + const { ethers } = await import('hardhat') + return ethers.getContractAt(artifact.abi, address) +} + +function linkBytecode(artifact: Artifact, libraries: Libraries): Artifact { + let bytecode = artifact.evm.bytecode.object + for (const [, fileReferences] of Object.entries( + artifact.evm.bytecode.linkReferences + )) { + for (const [libName, fixups] of Object.entries(fileReferences)) { + const address = libraries[libName] + if (address === undefined) continue + for (const fixup of fixups) { + bytecode = + bytecode.substr(0, fixup.start * 2) + + address.substr(2) + + bytecode.substr((fixup.start + fixup.length) * 2) + } + } + } + + artifact.evm.bytecode.object = bytecode + return artifact +} diff --git a/hardhat/evm/signers.ts b/hardhat/evm/signers.ts new file mode 100644 index 0000000..a5db7b6 --- /dev/null +++ b/hardhat/evm/signers.ts @@ -0,0 +1,67 @@ +import { BigNumber } from 'ethers' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/dist/src/signer-with-address' + +import { getForkedNetwork } from '../utils/test' + +// TODO: Update Whales +const WHALES: { [key: string]: string } = { + mainnet: '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503', +} + +export async function getSigners(): Promise { + const { ethers } = await import('hardhat') + return ethers.getSigners() +} + +export async function getSigner( + indexOrAddress: number | string = 0 +): Promise { + if (typeof indexOrAddress === 'string') { + const { ethers } = await import('hardhat') + const signer = ethers.provider.getSigner(indexOrAddress) + return SignerWithAddress.create(signer) + } else { + const signers = await getSigners() + return signers[indexOrAddress] + } +} + +export async function impersonate( + address: string, + balance?: BigNumber +): Promise { + if (balance) { + await setBalance(address, balance) + } + + return getSigner(address) +} + +export async function impersonateWhale( + balance?: BigNumber +): Promise { + const hre = await import('hardhat') + const network = getForkedNetwork(hre) + const address = WHALES[network] + if (!address) + throw Error(`Could not find whale address for network ${network}`) + return impersonate(address, balance) +} + +export async function setBalance( + address: string, + balance: BigNumber +): Promise { + const hre = await import('hardhat') + await hre.network.provider.request({ + method: 'hardhat_impersonateAccount', + params: [address], + }) + + const rawHexBalance = hre.ethers.utils.hexlify(balance) + const hexBalance = rawHexBalance.replace('0x0', '0x') + await hre.network.provider.request({ + method: 'hardhat_setBalance', + params: [address, hexBalance], + }) +} diff --git a/hardhat/evm/verifier.ts b/hardhat/evm/verifier.ts new file mode 100644 index 0000000..dc5b906 --- /dev/null +++ b/hardhat/evm/verifier.ts @@ -0,0 +1,386 @@ +import fetch, { Response } from 'node-fetch' +import { BuildInfo, CompilerInput, Network } from 'hardhat/types' + +import { getLongVersion } from '@nomiclabs/hardhat-etherscan/dist/src/solc/version' +import { encodeArguments } from '@nomiclabs/hardhat-etherscan/dist/src/ABIEncoder' +import { + getLibraryLinks, + Libraries, +} from '@nomiclabs/hardhat-etherscan/dist/src/solc/libraries' + +import { + Bytecode, + ContractInformation, + extractMatchingContractInformation, +} from '@nomiclabs/hardhat-etherscan/dist/src/solc/bytecode' + +import { + EtherscanURLs, + getEtherscanEndpoints, + retrieveContractBytecode, +} from '@nomiclabs/hardhat-etherscan/dist/src/network/prober' + +import { + toVerifyRequest, + toCheckStatusRequest, + EtherscanVerifyRequest, +} from '@nomiclabs/hardhat-etherscan/dist/src/etherscan/EtherscanVerifyContractRequest' + +import EtherscanResponse, { + delay, + getVerificationStatus, +} from '@nomiclabs/hardhat-etherscan/dist/src/etherscan/EtherscanService' + +import * as parser from '@solidity-parser/parser' + +import Task from '../task' +import { logger } from '../utils/logger' + +const MAX_VERIFICATION_INTENTS = 3 + +export default class Verifier { + apiKey: string + network: Network + + constructor(_network: Network, _apiKey: string) { + this.network = _network + this.apiKey = _apiKey + } + + async call( + task: Task, + name: string, + address: string, + constructorArguments: string | unknown[], + libraries: Libraries = {}, + intent = 1 + ): Promise { + const response = await this.verify( + task, + name, + address, + constructorArguments, + libraries + ) + + if (response.isVerificationSuccess()) { + const etherscanAPIEndpoints = await getEtherscanEndpoints( + this.network.provider, + this.network.name + ) + const contractURL = new URL( + `/address/${address}#code`, + etherscanAPIEndpoints.browserURL + ) + return contractURL.toString() + } else if ( + intent < MAX_VERIFICATION_INTENTS && + response.isBytecodeMissingInNetworkError() + ) { + logger.info( + `Could not find deployed bytecode in network, retrying ${intent++}/${MAX_VERIFICATION_INTENTS}...` + ) + delay(5000) + return this.call( + task, + name, + address, + constructorArguments, + libraries, + intent++ + ) + } else { + throw new Error( + `The contract verification failed. Reason: ${response.message}` + ) + } + } + + private async verify( + task: Task, + name: string, + address: string, + args: string | unknown[], + libraries: Libraries = {} + ): Promise { + const deployedBytecodeHex = await retrieveContractBytecode( + address, + this.network.provider, + this.network.name + ) + const deployedBytecode = new Bytecode(deployedBytecodeHex) + const buildInfos = await task.buildInfos() + const buildInfo = this.findBuildInfoWithContract(buildInfos, name) + buildInfo.input = this.trimmedBuildInfoInput(name, buildInfo.input) + + const sourceName = this.findContractSourceName(buildInfo, name) + const contractInformation = await extractMatchingContractInformation( + sourceName, + name, + buildInfo, + deployedBytecode + ) + if (!contractInformation) + throw Error('Could not find a bytecode matching the requested contract') + + const { libraryLinks } = await getLibraryLinks( + contractInformation, + libraries + ) + contractInformation.libraryLinks = libraryLinks + + const deployArgumentsEncoded = + typeof args == 'string' + ? args + : await encodeArguments( + contractInformation.contract.abi, + contractInformation.sourceName, + contractInformation.contractName, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + args as any[] + ) + + const solcFullVersion = await getLongVersion( + contractInformation.solcVersion + ) + const etherscanAPIEndpoints = await getEtherscanEndpoints( + this.network.provider, + this.network.name + ) + + const verificationStatus = await this.attemptVerification( + etherscanAPIEndpoints, + contractInformation, + address, + this.apiKey, + buildInfo.input, + solcFullVersion, + deployArgumentsEncoded + ) + + if (verificationStatus.isVerificationSuccess()) return verificationStatus + throw new Error( + `The contract verification failed. Reason: ${verificationStatus.message}` + ) + } + + private async attemptVerification( + etherscanAPIEndpoints: EtherscanURLs, + contractInformation: ContractInformation, + contractAddress: string, + etherscanAPIKey: string, + compilerInput: CompilerInput, + solcFullVersion: string, + deployArgumentsEncoded: string + ): Promise { + compilerInput.settings.libraries = contractInformation.libraryLinks + const request = toVerifyRequest({ + apiKey: etherscanAPIKey, + contractAddress, + sourceCode: JSON.stringify(compilerInput), + sourceName: contractInformation.sourceName, + contractName: contractInformation.contractName, + compilerVersion: solcFullVersion, + constructorArguments: deployArgumentsEncoded, + }) + + const response = await this.verifyContract( + etherscanAPIEndpoints.apiURL, + request + ) + const pollRequest = toCheckStatusRequest({ + apiKey: etherscanAPIKey, + guid: response.message, + }) + + await delay(700) + const verificationStatus = await getVerificationStatus( + etherscanAPIEndpoints.apiURL, + pollRequest + ) + + if ( + verificationStatus.isVerificationFailure() || + verificationStatus.isVerificationSuccess() + ) { + return verificationStatus + } + + throw new Error( + `The API responded with an unexpected message: ${verificationStatus.message}` + ) + } + + private async verifyContract( + url: string, + req: EtherscanVerifyRequest + ): Promise { + const parameters = new URLSearchParams({ ...req }) + const requestDetails = { method: 'post', body: parameters } + + let response: Response + try { + response = await fetch(url, requestDetails) + } catch (error) { + throw Error( + `Failed to send verification request. Reason: ${(error as any).message}` + ) + } + + if (!response.ok) { + const responseText = await response.text() + throw Error( + `Failed to send verification request.\nHTTP code: ${response.status}.\nResponse: ${responseText}` + ) + } + + const etherscanResponse = new EtherscanResponse(await response.json()) + if (!etherscanResponse.isOk()) throw Error(etherscanResponse.message) + return etherscanResponse + } + + private findBuildInfoWithContract( + buildInfos: BuildInfo[], + contractName: string + ): BuildInfo { + const found = buildInfos.find((buildInfo) => + this.getAllFullyQualifiedNames(buildInfo).some( + (name) => name.contractName === contractName + ) + ) + + if (found === undefined) { + throw Error(`Could not find a build info for contract ${contractName}`) + } else { + return found + } + } + + private findContractSourceName( + buildInfo: BuildInfo, + contractName: string + ): string { + const names = this.getAllFullyQualifiedNames(buildInfo) + const contractMatches = names.filter( + (name) => name.contractName === contractName + ) + if (contractMatches.length === 0) + throw Error( + `Could not find a source file for the requested contract ${contractName}` + ) + if (contractMatches.length > 1) + throw Error( + `More than one source file was found to match ${contractName}` + ) + return contractMatches[0].sourceName + } + + private getAllFullyQualifiedNames( + buildInfo: BuildInfo + ): Array<{ sourceName: string; contractName: string }> { + const contracts = buildInfo.output.contracts + return Object.keys(contracts).reduce( + (names: { sourceName: string; contractName: string }[], sourceName) => { + const contractsNames = Object.keys(contracts[sourceName]) + const qualifiedNames = contractsNames.map((contractName) => ({ + sourceName, + contractName, + })) + return names.concat(qualifiedNames) + }, + [] + ) + } + + // Trims the inputs of the build info to only keep imported files, avoiding submitting unnecessary source files for + // verification (e.g. mocks). This is required because Hardhat compiles entire projects at once, resulting in a single + // huge build info. + private trimmedBuildInfoInput( + contractName: string, + input: CompilerInput + ): CompilerInput { + // First we find all sources imported from our contract + const sourceName = this.getContractSourceName(contractName, input) + const importedSourceNames = this.getContractImportedSourceNames( + sourceName, + input, + new Set().add(sourceName) + ) + + // Then, we keep only those inputs. This method also preserves the order of the files, which may be important in + // some versions of solc. + return { + ...input, + sources: Object.keys(input.sources) + .filter((source) => importedSourceNames.has(source)) + .map((source) => ({ [source]: input.sources[source] })) + .reduce((previous, current) => Object.assign(previous, current), {}), + } + } + + private getAbsoluteSourcePath( + relativeSourcePath: string, + input: CompilerInput + ): string | undefined { + try { + /** + * This regular expression pulls out the name of a Solidity contract given a path. + * This supports dashes `-` in the name to support `draft-IERC20Permit.sol` + * + * Play around with the regex below: https://regexr.com/ + */ + const contractName = ( + relativeSourcePath.match(/.*\/((\w|-)*)\.sol/) as RegExpMatchArray + )[1] + return this.getContractSourceName(contractName, input) + } catch (error) { + throw new Error( + `No Solidity contract source found for relativeSourcePath: ${relativeSourcePath}. Consider updating build-info or checking regular expression in getAbsoluteSourcePath.` + ) + } + } + + private getContractSourceName( + contractName: string, + input: CompilerInput + ): string { + const absoluteSourcePath = Object.keys(input.sources).find( + (absoluteSourcePath) => + absoluteSourcePath.includes(`/${contractName}.sol`) + ) + + if (absoluteSourcePath === undefined) { + throw new Error(`Could not find source name for ${contractName}`) + } + + return absoluteSourcePath + } + + private getContractImportedSourceNames( + sourceName: string, + input: CompilerInput, + previousSourceNames: Set + ): Set { + const ast = parser.parse(input.sources[sourceName].content) + parser.visit(ast, { + ImportDirective: (node) => { + // Imported paths might be relative, so we convert them to absolute + const importedSourceName = this.getAbsoluteSourcePath(node.path, input) + + if ( + importedSourceName && + !previousSourceNames.has(importedSourceName) + ) { + // New source! + previousSourceNames = this.getContractImportedSourceNames( + importedSourceName, + input, + new Set(previousSourceNames).add(importedSourceName) + ) + } + }, + }) + + return previousSourceNames + } +} diff --git a/hardhat/index.ts b/hardhat/index.ts new file mode 100644 index 0000000..637878f --- /dev/null +++ b/hardhat/index.ts @@ -0,0 +1,5 @@ +import Task from './task' +import Verifier from './evm/verifier' +import { TaskRunOptions, Network } from './types' + +export { Task, TaskRunOptions, Verifier, Network } diff --git a/hardhat/task.ts b/hardhat/task.ts new file mode 100644 index 0000000..71b1b05 --- /dev/null +++ b/hardhat/task.ts @@ -0,0 +1,357 @@ +import fs from 'fs' +import path, { extname } from 'path' +import { + BuildInfo, + CompilerOutputContract, + HardhatRuntimeEnvironment, +} from 'hardhat/types' +import { BigNumber, Contract } from 'ethers' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' + +import { logger } from './utils' +import Verifier from './evm/verifier' +import { deploy, instanceAt } from './evm/contracts' + +import { + NETWORKS, + Network, + Libraries, + Artifact, + Input, + Output, + Param, + RawInputKeyValue, + RawOutput, + TaskRunOptions, +} from './types' +import { stripHexPrefix } from './utils' + +const TASKS_DIRECTORY = path.resolve(__dirname, '../tasks') + +/* eslint-disable @typescript-eslint/no-var-requires */ + +export default class Task { + id: string + _network?: Network + _verifier?: Verifier + _outputFile?: string + + static fromHRE( + id: string, + hre: HardhatRuntimeEnvironment, + verifier?: Verifier + ): Task { + return new this(id, hre.network.name as Network, verifier) + } + + // TEST + static getAllTasks(): string[] { + return this._getAllDirs(TASKS_DIRECTORY) + } + + static printAllTask() { + const taskNames = this.getAllTasks() + logger.log(`Available Tasks:`, `🚀`) + for (const taskName of taskNames) { + logger.log(`${taskName}`, `➡️`) + } + } + + static forTest(id: string, network: Network, outputTestFile = 'test'): Task { + const task = new this(id, network) + task.outputFile = outputTestFile + return task + } + + constructor(id: string, network?: Network, verifier?: Verifier) { + if (network && !NETWORKS.includes(network)) + throw Error(`Unknown network ${network}`) + this.id = id + this._network = network + this._verifier = verifier + } + + get outputFile(): string { + return `${this._outputFile || this.network}.json` + } + + set outputFile(file: string) { + this._outputFile = file + } + + get network(): Network { + if (!this._network) + throw Error('A network must be specified to define a task') + return this._network + } + + set network(name: Network) { + this._network = name + } + + async instanceAt(name: string, address: string): Promise { + return instanceAt(this.artifact(name), address) + } + + async deployedInstance(name: string): Promise { + const address = this.output()[name] + if (!address) throw Error(`Could not find deployed address for ${name}`) + return this.instanceAt(name, address) + } + + async inputInstance( + artifactName: string, + inputName: string + ): Promise { + const rawInput = this.rawInput() + const input = rawInput[inputName] + if (!this._isTask(input)) + throw Error(`Cannot access to non-task input ${inputName}`) + const task = input as Task + task.network = this.network + const address = this._parseRawInput(rawInput)[inputName] + return task.instanceAt(artifactName, address) + } + + async deployAndVerify( + name: string, + args: Array = [], + from?: SignerWithAddress, + force?: boolean, + libs?: Libraries + ): Promise { + const output = this.output({ ensure: false }) + if (force || !output[name]) { + const instance = await this.deploy(name, args, from, libs) + await this.verify(name, instance.address, args, libs) + return instance + } else { + logger.warn(`${name} already deployed at ${output[name]}`) + await this.verify(name, output[name], args, libs) + return this.instanceAt(name, output[name]) + } + } + + async deploy( + name: string, + args: Array = [], + from?: SignerWithAddress, + libs?: Libraries + ): Promise { + const instance = await deploy(this.artifact(name), args, from, libs) + const constructorArgs = instance.interface.encodeDeploy(args) + this.save({ + [name]: instance, + [this._keyForContractArgs(name)]: stripHexPrefix(constructorArgs), + }) + logger.success(`Deployed ${name} at ${instance.address}`) + return instance + } + + async verify( + name: string, + address?: string, + constructorArguments?: string | unknown[], + libs?: Libraries + ): Promise { + try { + if (!this._verifier) + return logger.warn( + 'Skipping contract verification, no verifier defined' + ) + const deployOutput = this.output() + if (!constructorArguments) { + logger.info( + 'No constructorArguments passed for verification. Pulling from inputs.' + ) + constructorArguments = stripHexPrefix( + deployOutput[this._keyForContractArgs(name)] + ) + } + if (!address) { + logger.info('No address passed for verification. Pulling from inputs.') + address = deployOutput[name] + } + const url = await this._verifier.call( + this, + name, + address, + constructorArguments, + libs + ) + logger.success(`Verified contract ${name} at ${url}`) + } catch (error) { + logger.error(`Failed trying to verify ${name} at ${address}: ${error}`) + } + } + + async run(options: TaskRunOptions = {}): Promise { + const taskPath = this._fileAt(this.dir(), 'index.ts') + const task = require(taskPath).default + await task(this, options) + } + + dir(): string { + if (!this.id) throw Error('Please provide a task deployment ID to run') + return this._dirAt(TASKS_DIRECTORY, this.id) + } + + buildInfo(fileName: string): BuildInfo { + const buildInfoDir = this._dirAt(this.dir(), 'build-info') + const artifactFile = this._fileAt( + buildInfoDir, + `${extname(fileName) ? fileName : `${fileName}.json`}` + ) + return JSON.parse(fs.readFileSync(artifactFile).toString()) + } + + buildInfos(): Array { + const buildInfoDir = this._dirAt(this.dir(), 'build-info') + return fs + .readdirSync(buildInfoDir) + .map((fileName) => this.buildInfo(fileName)) + } + + artifact(contractName: string, fileName?: string): Artifact { + const buildInfoDir = this._dirAt(this.dir(), 'build-info') + const builds: { + [sourceName: string]: { [contractName: string]: CompilerOutputContract } + } = Task._existsFile( + path.join(buildInfoDir, `${fileName || contractName}.json`) + ) + ? // If build info file exists, use it + this.buildInfo(contractName).output.contracts + : // Otherwise pull in all build info files and reduce each contract into a single object + this.buildInfos().reduce( + (result, info: BuildInfo) => ({ + ...result, + ...info.output.contracts, + }), + {} + ) + + const sourceName = Object.keys(builds).find((sourceName) => + Object.keys(builds[sourceName]).find((key) => key === contractName) + ) + + if (!sourceName) throw Error(`Could not find artifact for ${contractName}`) + return builds[sourceName][contractName] + } + + rawInput(): RawInputKeyValue { + const taskInputPath = this._fileAt(this.dir(), 'input.ts') + const rawInput = require(taskInputPath).default + const globalInput = { ...rawInput } + NETWORKS.forEach((network) => delete globalInput[network]) + const networkInput = rawInput[this.network] || {} + return { ...globalInput, ...networkInput } + } + + input(): Input { + return this._parseRawInput(this.rawInput()) + } + + output({ + ensure = true, + network, + }: { ensure?: boolean; network?: Network } = {}): Output { + if (network) this.network = network + const taskOutputDir = this._dirAt(this.dir(), 'output', ensure) + const taskOutputFile = this._fileAt(taskOutputDir, this.outputFile, ensure) + return this._read(taskOutputFile) + } + + save(output: RawOutput): void { + const taskOutputDir = this._dirAt(this.dir(), 'output', false) + if (!fs.existsSync(taskOutputDir)) fs.mkdirSync(taskOutputDir) + + const taskOutputFile = this._fileAt(taskOutputDir, this.outputFile, false) + const previousOutput = this._read(taskOutputFile) + + const finalOutput = { ...previousOutput, ...this._parseRawOutput(output) } + this._write(taskOutputFile, finalOutput) + } + + delete(): void { + const taskOutputDir = this._dirAt(this.dir(), 'output') + const taskOutputFile = this._fileAt(taskOutputDir, this.outputFile) + fs.unlinkSync(taskOutputFile) + } + + private _parseRawInput(rawInput: RawInputKeyValue): Input { + return Object.keys(rawInput).reduce( + (input: Input, key: Network | string) => { + const item = rawInput[key] + if (Array.isArray(item)) input[key] = item + else if (BigNumber.isBigNumber(item)) input[key] = item + else if (typeof item !== 'object') input[key] = item + else { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const output: Output | any = this._isTask(item) + ? (item as Task).output({ network: this.network }) + : item + input[key] = output[key] ? output[key] : output + } + return input + }, + {} + ) + } + + private _parseRawOutput(rawOutput: RawOutput): Output { + return Object.keys(rawOutput).reduce((output: Output, key: string) => { + const value = rawOutput[key] + output[key] = typeof value === 'string' ? value : value.address + return output + }, {}) + } + + private _read(path: string): Output { + return fs.existsSync(path) + ? JSON.parse(fs.readFileSync(path).toString()) + : {} + } + + private _write(path: string, output: Output): void { + const timestamp = new Date().getTime() + const finalOutputJSON = JSON.stringify({ ...output, timestamp }, null, 2) + fs.writeFileSync(path, finalOutputJSON) + } + + private _fileAt(base: string, name: string, ensure = true): string { + const filePath = path.join(base, name) + if (ensure && !Task._existsFile(filePath)) + throw Error(`Could not find a file at ${filePath}`) + return filePath + } + + private _dirAt(base: string, name: string, ensure = true): string { + const dirPath = path.join(base, name) + if (ensure && !Task._existsDir(dirPath)) + throw Error(`Could not find a directory at ${dirPath}`) + return dirPath + } + + private static _existsFile(filePath: string): boolean { + return fs.existsSync(filePath) && fs.statSync(filePath).isFile() + } + + private static _existsDir(dirPath: string): boolean { + return fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory() + } + + private static _getAllDirs(dirPath: string): string[] { + return fs.readdirSync(dirPath).filter((file) => { + return this._existsDir(dirPath + '/' + file) + }) + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private _isTask(object: any): boolean { + return object.constructor.name == 'Task' + } + + private _keyForContractArgs(contractName: string): string { + return contractName + '-args' + } +} diff --git a/hardhat/types.ts b/hardhat/types.ts new file mode 100644 index 0000000..587fab9 --- /dev/null +++ b/hardhat/types.ts @@ -0,0 +1,65 @@ +import { Contract, BigNumber } from 'ethers' +import { CompilerOutputBytecode } from 'hardhat/types' +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/dist/src/signer-with-address' + +import Task from './task' + +export const NETWORKS = [ + 'mainnet', + 'ropsten', + // 'goerli', + // 'rinkeby', + // 'kovan', + 'bsc', + 'bscTestnet', + 'polygon', + 'polygonTestnet', + 'hardhat', +] +// Create a type out of the network array +export type Network = (typeof NETWORKS)[number] + +export type TaskRunOptions = { + force?: boolean + from?: SignerWithAddress +} + +export type NAry = T | Array + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type Param = boolean | string | number | BigNumber | any + +export type Input = { + [key: string]: NAry +} + +export type RawInputByNetwork = { + [key in Network]: RawInputKeyValue +} + +export type RawInputKeyValue = { + [key: string]: NAry | Output | Task +} + +export type RawInput = RawInputKeyValue | RawInputByNetwork + +export type Output = { + [key: string]: string +} + +export type RawOutput = { + [key: string]: string | Contract +} + +export type Libraries = { [key: string]: string } + +export type Artifact = { + abi: unknown[] + evm: { + bytecode: CompilerOutputBytecode + deployedBytecode: CompilerOutputBytecode + methodIdentifiers: { + [methodSignature: string]: string + } + } +} diff --git a/hardhat/utils/clean.js b/hardhat/utils/clean.js new file mode 100644 index 0000000..63927d4 --- /dev/null +++ b/hardhat/utils/clean.js @@ -0,0 +1,31 @@ +/* eslint-disable no-undef */ +/* eslint-disable @typescript-eslint/no-var-requires */ +var fs = require('fs'); + +function deleteFolderRecursive(path) { + if(!fs.existsSync(path)) return console.log(`${path} does not exist!`) + if (fs.existsSync(path) && fs.lstatSync(path).isDirectory()) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + fs.readdirSync(path).forEach(function(file, _index){ + var curPath = path + "/" + file; + + if (fs.lstatSync(curPath).isDirectory()) { // recurse + deleteFolderRecursive(curPath); + } else { // delete file + fs.unlinkSync(curPath); + } + }); + + console.log(`Deleting directory "${path}"...`); + fs.rmdirSync(path); + } +}; + +var pathArgs = process.argv.slice(2); + +if(pathArgs.length < 1) return console.warn("Please enter paths as arguments, for the folders you want to delete recursively. \nExample script invocation: node scripts/clean.js ./release") +console.log("Cleaning working tree..."); + +pathArgs.forEach(pathToDelete => deleteFolderRecursive(pathToDelete)); + +console.log("Successfully cleaned working tree!"); \ No newline at end of file diff --git a/hardhat/utils/env.ts b/hardhat/utils/env.ts new file mode 100644 index 0000000..5727491 --- /dev/null +++ b/hardhat/utils/env.ts @@ -0,0 +1,16 @@ +import 'dotenv/config' +import { logger } from './logger' + +export function getEnv(name: string, required = false): string { + const value = process.env[name] + if (!value) { + const message = `${getEnv.name}:: Environment variable ${name} not found.` + if (required) { + throw new Error(message) + } + logger.info(message) + return '' + } else { + return value + } +} diff --git a/hardhat/utils/index.ts b/hardhat/utils/index.ts new file mode 100644 index 0000000..68c43f5 --- /dev/null +++ b/hardhat/utils/index.ts @@ -0,0 +1,11 @@ +export * from './env' +export * from './logger' +export * from './test' + +export function stripHexPrefix(hexString: string): string { + if (hexString.length < 2) return hexString + if (hexString.substring(0, 2) == '0x') { + hexString = hexString.substring(2) + } + return hexString +} diff --git a/hardhat/utils/logger.ts b/hardhat/utils/logger.ts new file mode 100644 index 0000000..89c29f4 --- /dev/null +++ b/hardhat/utils/logger.ts @@ -0,0 +1,52 @@ +import chalk from 'chalk' + +const DEFAULTS = { + verbose: false, + silent: true, +} + +export class Logger { + actor: string + color: string + + static setDefaults(silent: boolean, verbose: boolean): void { + DEFAULTS.silent = silent + DEFAULTS.verbose = verbose + } + + constructor(actor = '', color = 'white') { + this.actor = actor + this.color = color + } + + info(msg: string): void { + if (!DEFAULTS.verbose) return + this.log(msg, '️ ', 'white') + } + + success(msg: string): void { + this.log(msg, '✅', 'green') + } + + warn(msg: string, error?: Error): void { + this.log(msg, '⚠️ ', 'yellow') + if (error) console.error(error) + } + + error(msg: string, error?: Error): void { + this.log(msg, '🚨', 'red') + if (error) console.error(error) + } + + log(msg: string, emoji: string, color = 'white'): void { + if (DEFAULTS.silent) return + let formattedMessage = chalk.keyword(color)(`${emoji} ${msg}`) + if (DEFAULTS.verbose) { + const formattedPrefix = chalk.keyword(this.color)(`[${this.actor}]`) + formattedMessage = `${formattedPrefix} ${formattedMessage}` + } + console.error(formattedMessage) + } +} + +export const logger = new Logger() diff --git a/hardhat/utils/test.ts b/hardhat/utils/test.ts new file mode 100644 index 0000000..92a2aff --- /dev/null +++ b/hardhat/utils/test.ts @@ -0,0 +1,117 @@ +import { + RunSuperFunction, + HardhatRuntimeEnvironment, + HttpNetworkConfig, + HardhatNetworkConfig, +} from 'hardhat/types' + +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ + +export async function testRunner( + args: any, + hre: HardhatRuntimeEnvironment, + run: RunSuperFunction +): Promise { + if (hre.network.name === 'hardhat' && !args.fork) + await runNormalTests(args, hre, run) + else if (hre.network.name === 'hardhat' && args.fork) + await runForkTests(args, hre, run) + else await runDeployTests(args, hre, run) +} + +async function runNormalTests( + args: any, + hre: HardhatRuntimeEnvironment, + run: RunSuperFunction +): Promise { + console.log('Running normal tests...') + args.testFiles = args.testFiles.filter((file: string) => + file.endsWith('.test.ts') + ) + await run(args) +} + +async function runDeployTests( + args: any, + hre: HardhatRuntimeEnvironment, + run: RunSuperFunction +): Promise { + console.log('Running deployment tests...') + if (args.fork) + throw Error( + "The 'fork' option is invalid when testing deployments on livenetwork" + ) + args.testFiles = args.testFiles.filter((file: string) => + file.endsWith('.deploy.ts') + ) + await run(args) +} + +async function runForkTests( + args: any, + hre: HardhatRuntimeEnvironment, + run: RunSuperFunction +): Promise { + console.log('Running fork tests...') + if (args.fork === 'hardhat') throw Error('Cannot fork local networks') + args.testFiles = args.testFiles.filter((file: string) => + file.endsWith('.fork.ts') + ) + + const forkingNetworkName = Object.keys(hre.config.networks).find( + (networkName) => networkName === args.fork + ) + if (!forkingNetworkName) + throw Error(`Could not find a config for network ${args.fork} to be forked`) + + const forkingNetworkConfig = hre.config.networks[ + forkingNetworkName + ] as HttpNetworkConfig + if (!forkingNetworkConfig.url) + throw Error( + `Could not find a RPC url in network config for ${forkingNetworkName}` + ) + + await hre.network.provider.request({ + method: 'hardhat_reset', + params: [ + { + forking: { + jsonRpcUrl: forkingNetworkConfig.url, + blockNumber: args.blockNumber, + }, + }, + ], + }) + + const config = hre.network.config as HardhatNetworkConfig + // TODO: Update httpHeaders? + config.forking = { + enabled: true, + blockNumber: args.blockNumber, + url: forkingNetworkConfig.url, + httpHeaders: {}, + } + + await run(args) +} + +export function getForkedNetwork(hre: HardhatRuntimeEnvironment): string { + const config = hre.network.config as HardhatNetworkConfig + if (!config.forking || !config.forking.url) + throw Error(`No forks found on network ${hre.network.name}`) + + const network = Object.entries(hre.config.networks).find( + ([, networkConfig]) => { + const httpNetworkConfig = networkConfig as HttpNetworkConfig + return ( + httpNetworkConfig.url && httpNetworkConfig.url === config?.forking?.url + ) + } + ) + + if (!network) + throw Error(`No network found matching fork from ${config.forking.url}`) + return network[0] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8926543 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "@erc-5725/sdk", + "version": "1.0.1", + "description": "ERC-5725: Transferrable Vesting NFT - Reference Implementation.", + "main": "dist/src/index.js", + "files": [ + "README.md", + "dist/index.js", + "dist/index.d.ts", + "dist/src/**/*", + "dist/typechain-types/**/*", + "dist/artifacts/contracts/ERC5725.sol/ERC5725.json", + "dist/artifacts/contracts/IERC5725.sol/IERC5725.json", + "contracts/ERC5725.sol", + "contracts/IERC5725.sol" + ], + "scripts": { + "precommit": "yarn compile && yarn test && yarn lint:fix", + "prebuild": "yarn compile && yarn lint:sol && yarn clean ./dist", + "build": "tsc", + "precompile": "yarn clean ./artifacts", + "_prepublishOnly": "yarn audit", + "compile": "hardhat compile", + "gen:docs": "hardhat docgen", + "deploy": "hardhat deploy --id 20230212-vesting-nft --network", + "verify": "hardhat verify-contract --id 20230212-vesting-nft --network", + "test": "hardhat test", + "test:gas": "env REPORT_GAS=true yarn test", + "test:coverage": "hardhat coverage", + "test:ci": "yarn compile && yarn test", + "lint": "yarn lint:sol && yarn lint:ts", + "lint:fix": "yarn lint:sol:fix && yarn lint:ts:fix", + "lint:sol": "solhint 'contracts/**/*.sol' && prettier --check 'contracts/**/*.sol'", + "lint:sol:fix": "prettier --write 'contracts/**/*.sol'", + "lint:ts": "prettier --check ./{scripts,tasks,src,test}/**/*.ts", + "lint:ts:fix": "prettier --write ./{scripts,tasks,src,hardhat,test}/**/*.ts", + "lint:ci": "yarn lint", + "list:networks": "hardhat verify --list-networks", + "clean": "node ./hardhat/utils/clean.js", + "example": "ts-node ./examples/getVestingPeriod" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ERC-5725/ERC-5725-reference.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/ERC-5725/ERC-5725-reference/issues" + }, + "homepage": "https://github.com/ERC-5725/ERC-5725-reference#readme", + "resolutions": { + "got": "^11.8.5", + "node-fetch": "^2.6.7", + "minimatch": "^3.0.5", + "flat": "^5.0.1" + }, + "devDependencies": { + "@ethersproject/abi": "^5.4.7", + "@ethersproject/providers": "^5.4.7", + "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-toolbox": "^1.0.1", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@nomiclabs/hardhat-etherscan": "^2.1.6", + "@typechain/ethers-v5": "^10.1.0", + "@typechain/hardhat": "^6.1.2", + "@types/chai": "^4.2.0", + "@types/mocha": "^9.1.0", + "@types/node": ">=12.0.0", + "@types/node-fetch": "^2.6.2", + "chai": "^4.2.0", + "chalk": "4.1.1", + "dotenv": "^16.0.1", + "ethers": "^5.4.7", + "fs": "^0.0.1-security", + "hardhat": "^2.10.1", + "hardhat-gas-reporter": "^1.0.8", + "node-fetch": "^2.6.7", + "prettier": "^2.7.1", + "prettier-plugin-solidity": "^1.0.0-beta.24", + "solhint": "^3.3.7", + "solhint-plugin-prettier": "^0.0.5", + "solidity-coverage": "^0.7.21", + "solidity-docgen": "0.6.0-beta.26", + "ts-node": ">=8.0.0", + "typechain": "^8.1.0", + "typescript": ">=4.5.0" + }, + "dependencies": { + "@erc-5725/interfaces": "^1.1.2", + "@openzeppelin/contracts": "^4.7.3", + "@openzeppelin/contracts-upgradeable": "^4.7.3" + } +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..6bb5b74 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,22 @@ +const solhintConfig = require('./solhint.config') + +module.exports = { + trailingComma: 'es5', + tabWidth: 2, + semi: false, + singleQuote: true, + overrides: [ + { + // https://www.npmjs.com/package/prettier-plugin-solidity + files: '*.sol', + options: { + printWidth: solhintConfig.rules['max-line-length'][1], + tabWidth: 4, + useTabs: false, + singleQuote: false, + bracketSpacing: false, + explicitTypes: 'always', + }, + }, + ], +} diff --git a/scripts/deploy.ts b/scripts/deploy.ts new file mode 100644 index 0000000..ac4cdee --- /dev/null +++ b/scripts/deploy.ts @@ -0,0 +1,28 @@ +import { ethers } from 'hardhat' + +/** + * // NOTE: This is an example of the default hardhat deployment approach. + * This project takes deployments one step further by assigning each deployment + * its own task in ../tasks/ organized by date. + */ +async function main() { + const currentTimestampInSeconds = Math.round(Date.now() / 1000) + const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60 + const unlockTime = currentTimestampInSeconds + ONE_YEAR_IN_SECS + + const lockedAmount = ethers.utils.parseEther('1') + + const Lock = await ethers.getContractFactory('Lock') + const lock = await Lock.deploy(unlockTime, { value: lockedAmount }) + + await lock.deployed() + + console.log('Lock with 1 ETH deployed to:', lock.address) +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error) + process.exitCode = 1 +}) diff --git a/solhint.config.js b/solhint.config.js new file mode 100644 index 0000000..a52da5c --- /dev/null +++ b/solhint.config.js @@ -0,0 +1,41 @@ +/** + * Set the Solidity compiler version + */ +const COMPILER_VERSION = "0.8.17" + +/** + * + * - Github: https://github.com/protofire/solhint + * - Supported Rules: https://github.com/protofire/solhint/blob/master/docs/rules.md + * - Configure linter with inline comments: + * https://github.com/protofire/solhint#configure-the-linter-with-comments + * - Create a shareable solhint config through npm: + * https://github.com/protofire/solhint/blob/master/docs/shareable-configs.md + * - "error", "warn", "off" are generally the choices below + */ +module.exports = { + "extends": "solhint:recommended", + "plugins": [], + "rules": { + // Best Practice Rules + "constructor-syntax": "warn", + "max-line-length": ["error", 120], + // "code-complexity": ["warn", 7], // Not included in recommended + // "function-max-lines": [ "warn",50 ], // Not included in recommended + + // Style Guide Rules + "func-visibility": ["error", { "ignoreConstructors": true }], // Set ignoreConstructors to true if using solidity >=0.7.0 + "reason-string": ["warn", { "maxLength": 50 }], // Revert reason length + "func-param-name-mixedcase": "error", + "modifier-name-mixedcase": "error", + "private-vars-leading-underscore": ["error", { "strict": false }], + "ordering": "warn", + + // Security Rules + "compiler-version": ["warn", COMPILER_VERSION], + "avoid-sha3": "error", + "avoid-suicide": "error", + "avoid-throw": "error", + "not-rely-on-time": "off", + }, +} \ No newline at end of file diff --git a/src/erc5725.ts b/src/erc5725.ts new file mode 100644 index 0000000..de32b08 --- /dev/null +++ b/src/erc5725.ts @@ -0,0 +1,46 @@ +import { Contract, Signer, providers, utils } from 'ethers' +import ERC5725_Artifact from '../artifacts/contracts/ERC5725.sol/ERC5725.json' +import { ERC5725 } from '../typechain-types' + +// This constant represents the interface ID of the IERC5725 contract. +export const IERC5725_InterfaceId = '0xbd3a202b' + +/** + * This function returns an instance of the ERC5725 contract, which is a smart contract that implements the IERC5725 interface. + * @param address The EVM address of the ERC5725 contract. + * @param signerOrProvider An optional parameter that specifies the signer or provider to use for sending transactions to the contract. + * @returns An instance of the ERC5725 contract. + */ +export function getERC5725Contract( + address: string, + signerOrProvider?: Signer | providers.Provider +) { + return new Contract( + address, + ERC5725_Artifact.abi, + signerOrProvider + ) as ERC5725 +} + +/** + * This function returns the interface object for the ERC5725 contract. + * @returns The interface object for the ERC5725 contract. + */ +export function getERC5725Interface() { + // Create a new instance of the utils.Interface class with the ABI of the ERC5725 contract. + return new utils.Interface(ERC5725_Artifact.abi) +} + +/** + * This async function checks whether a given contract at a specified address supports the IERC5725 interface. + * @param address The EVM address of the contract to check. + * @param signerOrProvider The signer or provider to use for sending transactions to the contract. + * @returns A Promise that resolves to true if the contract supports the IERC5725 interface, and false otherwise. + */ +export async function supportsIERC5725( + address: string, + signerOrProvider: Signer | providers.Provider +) { + const contract = getERC5725Contract(address, signerOrProvider) + return await contract.supportsInterface(IERC5725_InterfaceId) +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..fdfe21d --- /dev/null +++ b/src/index.ts @@ -0,0 +1,12 @@ +export * from './erc5725' +export { + ERC5725, + ERC5725__factory, + IERC5725, + IERC5725__factory, +} from '../typechain-types' +import ERC5725_Artifact from '../artifacts/contracts/ERC5725.sol/ERC5725.json' +// TODO: Need to update this package to use type definitions +// @ts-ignore +import { IERC5725_Artifact } from '@erc-5725/interfaces' +export { ERC5725_Artifact, IERC5725_Artifact } diff --git a/tasks/20230212-vesting-nft/build-info/LinearVestingNFT.json b/tasks/20230212-vesting-nft/build-info/LinearVestingNFT.json new file mode 100644 index 0000000..ede33fd --- /dev/null +++ b/tasks/20230212-vesting-nft/build-info/LinearVestingNFT.json @@ -0,0 +1,153823 @@ +{ + "id": "bee391d170fede1ef605710a037e4dbf", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.17", + "solcLongVersion": "0.8.17+commit.8df45f5f", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n // decrementing then incrementing.\n _balances[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n unchecked {\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n _balances[account] += amount;\n }\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n // Overflow not possible: amount <= accountBalance <= totalSupply.\n _totalSupply -= amount;\n }\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\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(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _ownerOf(tokenId);\n require(owner != address(0), \"ERC721: invalid token ID\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireMinted(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not token owner or approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n _requireMinted(tokenId);\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n _safeTransfer(from, to, tokenId, data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _ownerOf(tokenId) != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId, 1);\n\n // Check that tokenId was not minted by `_beforeTokenTransfer` hook\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n unchecked {\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\n // Given that tokens are minted one by one, it is impossible in practice that\n // this ever happens. Might change if we allow batch minting.\n // The ERC fails to describe this case.\n _balances[to] += 1;\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId, 1);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n owner = ERC721.ownerOf(tokenId);\n\n // Clear approvals\n delete _tokenApprovals[tokenId];\n\n unchecked {\n // Cannot overflow, as that would require more tokens to be burned/transferred\n // out than the owner initially received through minting and transferring in.\n _balances[owner] -= 1;\n }\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId, 1);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId, 1);\n\n // Check that tokenId was not transferred by `_beforeTokenTransfer` hook\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n\n // Clear approvals from the previous owner\n delete _tokenApprovals[tokenId];\n\n unchecked {\n // `_balances[from]` cannot overflow for the same reason as described in `_burn`:\n // `from`'s balance is the number of token held, which is at least one before the current\n // transfer.\n // `_balances[to]` could overflow in the conditions described in `_mint`. That would require\n // all 2**256 token ids to be minted, which in practice is impossible.\n _balances[from] -= 1;\n _balances[to] += 1;\n }\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId, 1);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` has not been minted yet.\n */\n function _requireMinted(uint256 tokenId) internal view virtual {\n require(_exists(tokenId), \"ERC721: invalid token ID\");\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n * - When `from` is zero, the tokens will be minted for `to`.\n * - When `to` is zero, ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n * - `batchSize` is non-zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 firstTokenId,\n uint256 batchSize\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n * - When `from` is zero, the tokens were minted for `to`.\n * - When `to` is zero, ``from``'s tokens were burned.\n * - `from` and `to` are never both zero.\n * - `batchSize` is non-zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 firstTokenId,\n uint256 batchSize\n ) internal virtual {}\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n * that `ownerOf(tokenId)` is `a`.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\n _balances[account] += amount;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Address.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason or using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\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" + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./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 *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\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 v4.8.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Down, // Toward negative infinity\n Up, // Toward infinity\n Zero // Toward zero\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 up instead\n * of rounding down.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\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 denominator == 0\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n * with further edits by Uniswap Labs also under MIT license.\n */\n function mulDiv(\n uint256 x,\n uint256 y,\n uint256 denominator\n ) 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; // 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 prod0 := mul(x, y)\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 return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n require(denominator > prod1);\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. Always >= 1.\n // See https://cs.stackexchange.com/q/138556/92363.\n\n // Does not overflow because the denominator cannot be zero at this stage in the function.\n uint256 twos = denominator & (~denominator + 1);\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 works\n // 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(\n uint256 x,\n uint256 y,\n uint256 denominator,\n Rounding rounding\n ) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (rounding == Rounding.Up && 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 down.\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 + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2, rounded down, of a positive value.\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 + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10, rounded down, of a positive value.\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 + (rounding == Rounding.Up && 10**result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256, rounded down, of a positive value.\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 10, 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 + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\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), _SYMBOLS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\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 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] = _SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\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 representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n}\n" + }, + "contracts/ERC5725.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"./IERC5725.sol\";\n\nabstract contract ERC5725 is IERC5725, ERC721 {\n using SafeERC20 for IERC20;\n\n /// @dev mapping for claimed payouts\n mapping(uint256 => uint256) /*tokenId*/ /*claimed*/\n internal _payoutClaimed;\n\n /**\n * @notice Checks if the tokenId exists and its valid\n * @param tokenId The NFT token id\n */\n modifier validToken(uint256 tokenId) {\n require(_exists(tokenId), \"ERC5725: invalid token ID\");\n _;\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claim(uint256 tokenId) external override(IERC5725) validToken(tokenId) {\n require(ownerOf(tokenId) == msg.sender, \"Not owner of NFT\");\n uint256 amountClaimed = claimablePayout(tokenId);\n require(amountClaimed > 0, \"ERC5725: No pending payout\");\n\n emit PayoutClaimed(tokenId, msg.sender, amountClaimed);\n\n _payoutClaimed[tokenId] += amountClaimed;\n IERC20(payoutToken(tokenId)).safeTransfer(msg.sender, amountClaimed);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayout(uint256 tokenId) public view override(IERC5725) returns (uint256 payout) {\n return vestedPayoutAtTime(tokenId, block.timestamp);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n virtual\n override(IERC5725)\n returns (uint256 payout);\n\n /**\n * @dev See {IERC5725}.\n */\n function vestingPayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return _payout(tokenId) - vestedPayout(tokenId);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claimablePayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return vestedPayout(tokenId) - _payoutClaimed[tokenId];\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claimedPayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return _payoutClaimed[tokenId];\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestingPeriod(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 vestingStart, uint256 vestingEnd)\n {\n return (_startTime(tokenId), _endTime(tokenId));\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function payoutToken(uint256 tokenId) public view override(IERC5725) validToken(tokenId) returns (address token) {\n return _payoutToken(tokenId);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n * IERC5725 interfaceId = 0xd707c82a\n */\n function supportsInterface(bytes4 interfaceId)\n public\n view\n virtual\n override(ERC721, IERC165)\n returns (bool supported)\n {\n return interfaceId == type(IERC5725).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Internal function to get the payout token of a given vesting NFT\n *\n * @param tokenId on which to check the payout token address\n * @return address payout token address\n */\n function _payoutToken(uint256 tokenId) internal view virtual returns (address);\n\n /**\n * @dev Internal function to get the total payout of a given vesting NFT.\n * @dev This is the total that will be paid out to the NFT owner, including historical tokens.\n *\n * @param tokenId to check\n * @return uint256 the total payout of a given vesting NFT\n */\n function _payout(uint256 tokenId) internal view virtual returns (uint256);\n\n /**\n * @dev Internal function to get the start time of a given vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the start time in epoch timestamp\n */\n function _startTime(uint256 tokenId) internal view virtual returns (uint256);\n\n /**\n * @dev Internal function to get the end time of a given vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the end time in epoch timestamp\n */\n function _endTime(uint256 tokenId) internal view virtual returns (uint256);\n}\n" + }, + "contracts/IERC5725.sol": { + "content": "// SPDX-License-Identifier: CC0-1.0\npragma solidity ^0.8.0;\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\n/**\n * @title Non-Fungible Vesting Token Standard\n * @notice A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve\n * scheduled using timestamps.\n * @dev Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the\n * tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT.\n */\ninterface IERC5725 is IERC721 {\n /**\n * This event is emitted when the payout is claimed through the claim function\n * @param tokenId the NFT tokenId of the assets being claimed.\n * @param recipient The address which is receiving the payout.\n * @param claimAmount The amount of tokens being claimed.\n */\n event PayoutClaimed(uint256 indexed tokenId, address indexed recipient, uint256 claimAmount);\n\n /**\n * @notice Claim the pending payout for the NFT\n * @dev MUST grant the claimablePayout value at the time of claim being called\n * MUST revert if not called by the token owner or approved users\n * MUST emit PayoutClaimed\n * SHOULD revert if there is nothing to claim\n * @param tokenId The NFT token id\n */\n function claim(uint256 tokenId) external;\n\n /**\n * @notice Number of tokens for the NFT which have been claimed at the current timestamp\n * @param tokenId The NFT token id\n * @return payout The total amount of payout tokens claimed for this NFT\n */\n function claimedPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Number of tokens for the NFT which can be claimed at the current timestamp\n * @dev It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\n * @param tokenId The NFT token id\n * @return payout The amount of unlocked payout tokens for the NFT which have not yet been claimed\n */\n function claimablePayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Total amount of tokens which have been vested at the current timestamp.\n * This number also includes vested tokens which have been claimed.\n * @dev It is RECOMMENDED that this function calls `vestedPayoutAtTime` with\n * `block.timestamp` as the `timestamp` parameter.\n * @param tokenId The NFT token id\n * @return payout Total amount of tokens which have been vested at the current timestamp.\n */\n function vestedPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Total amount of vested tokens at the provided timestamp.\n * This number also includes vested tokens which have been claimed.\n * @dev `timestamp` MAY be both in the future and in the past.\n * Zero MUST be returned if the timestamp is before the token was minted.\n * @param tokenId The NFT token id\n * @param timestamp The timestamp to check on, can be both in the past and the future\n * @return payout Total amount of tokens which have been vested at the provided timestamp\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) external view returns (uint256 payout);\n\n /**\n * @notice Number of tokens for an NFT which are currently vesting.\n * @dev The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\n * @param tokenId The NFT token id\n * @return payout The number of tokens for the NFT which are vesting until a future date.\n */\n function vestingPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice The start and end timestamps for the vesting of the provided NFT\n * MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\n * @param tokenId The NFT token id\n * @return vestingStart The beginning of the vesting as a unix timestamp\n * @return vestingEnd The ending of the vesting as a unix timestamp\n */\n function vestingPeriod(uint256 tokenId) external view returns (uint256 vestingStart, uint256 vestingEnd);\n\n /**\n * @notice Token which is used to pay out the vesting claims\n * @param tokenId The NFT token id\n * @return token The token which is used to pay out the vesting claims\n */\n function payoutToken(uint256 tokenId) external view returns (address token);\n}\n" + }, + "contracts/mocks/ERC20Mock.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.17;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract ERC20Mock is ERC20 {\n uint8 private _decimals;\n\n constructor(\n uint256 supply_,\n uint8 decimals_,\n string memory name_,\n string memory symbol_\n ) ERC20(name_, symbol_) {\n _mint(msg.sender, supply_);\n _decimals = decimals_;\n }\n\n function mint(uint256 amount, address to) public {\n _mint(to, amount);\n }\n\n function decimals() public view virtual override returns (uint8) {\n return _decimals;\n }\n}\n" + }, + "contracts/reference/LinearVestingNFT.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"../ERC5725.sol\";\n\ncontract LinearVestingNFT is ERC5725 {\n using SafeERC20 for IERC20;\n\n struct VestDetails {\n IERC20 payoutToken; /// @dev payout token\n uint256 payout; /// @dev payout token remaining to be paid\n uint128 startTime; /// @dev when vesting starts\n uint128 endTime; /// @dev when vesting end\n uint128 cliff; /// @dev duration in seconds of the cliff in which tokens will be begin releasing\n }\n mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds\n\n /// @dev tracker of current NFT id\n uint256 private _tokenIdTracker;\n\n /**\n * @dev See {IERC5725}.\n */\n constructor(string memory name, string memory symbol) ERC721(name, symbol) {}\n\n /**\n * @notice Creates a new vesting NFT and mints it\n * @dev Token amount should be approved to be transferred by this contract before executing create\n * @param to The recipient of the NFT\n * @param amount The total assets to be locked over time\n * @param startTime When the vesting starts in epoch timestamp\n * @param duration The vesting duration in seconds\n * @param cliff The cliff duration in seconds\n * @param token The ERC20 token to vest over time\n */\n function create(\n address to,\n uint256 amount,\n uint128 startTime,\n uint128 duration,\n uint128 cliff,\n IERC20 token\n ) public virtual {\n require(startTime >= block.timestamp, \"startTime cannot be on the past\");\n require(to != address(0), \"to cannot be address 0\");\n require(cliff <= duration, \"duration needs to be more than cliff\");\n\n uint256 newTokenId = _tokenIdTracker;\n\n vestDetails[newTokenId] = VestDetails({\n payoutToken: token,\n payout: amount,\n startTime: startTime,\n endTime: startTime + duration,\n cliff: startTime + cliff\n });\n\n _tokenIdTracker++;\n _mint(to, newTokenId);\n IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n override(ERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n if (timestamp < _cliff(tokenId)) {\n return 0;\n }\n if (timestamp > _endTime(tokenId)) {\n return _payout(tokenId);\n }\n return (_payout(tokenId) * (timestamp - _startTime(tokenId))) / (_endTime(tokenId) - _startTime(tokenId));\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payoutToken(uint256 tokenId) internal view override returns (address) {\n return address(vestDetails[tokenId].payoutToken);\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payout(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].payout;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _startTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].startTime;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _endTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].endTime;\n }\n\n /**\n * @dev Internal function to get the cliff time of a given linear vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the cliff time in seconds\n */\n function _cliff(uint256 tokenId) internal view returns (uint256) {\n return vestDetails[tokenId].cliff;\n }\n}\n" + }, + "contracts/reference/VestingNFT.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"../ERC5725.sol\";\n\ncontract VestingNFT is ERC5725 {\n using SafeERC20 for IERC20;\n\n struct VestDetails {\n IERC20 payoutToken; /// @dev payout token\n uint256 payout; /// @dev payout token remaining to be paid\n uint128 startTime; /// @dev when vesting starts\n uint128 endTime; /// @dev when vesting end\n }\n mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds\n\n /// @dev tracker of current NFT id\n uint256 private _tokenIdTracker;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token.\n */\n constructor(string memory name, string memory symbol) ERC721(name, symbol) {}\n\n /**\n * @notice Creates a new vesting NFT and mints it\n * @dev Token amount should be approved to be transferred by this contract before executing create\n * @param to The recipient of the NFT\n * @param amount The total assets to be locked over time\n * @param releaseTimestamp When the full amount of tokens get released\n * @param token The ERC20 token to vest over time\n */\n function create(\n address to,\n uint256 amount,\n uint128 releaseTimestamp,\n IERC20 token\n ) public virtual {\n require(to != address(0), \"to cannot be address 0\");\n require(releaseTimestamp > block.timestamp, \"release must be in future\");\n\n uint256 newTokenId = _tokenIdTracker;\n\n vestDetails[newTokenId] = VestDetails({\n payoutToken: token,\n payout: amount,\n startTime: uint128(block.timestamp),\n endTime: releaseTimestamp\n });\n\n _tokenIdTracker++;\n _mint(to, newTokenId);\n IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n override(ERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n if (timestamp >= _endTime(tokenId)) {\n return _payout(tokenId);\n }\n return 0;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payoutToken(uint256 tokenId) internal view override returns (address) {\n return address(vestDetails[tokenId].payoutToken);\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payout(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].payout;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _startTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].startTime;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _endTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].endTime;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "Ownable": [ + 112 + ] + }, + "id": 113, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "102:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 113, + "sourceUnit": 2560, + "src": "127:30:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4, + "name": "Context", + "nameLocations": [ + "683:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "683:7:0" + }, + "id": 5, + "nodeType": "InheritanceSpecifier", + "src": "683:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "159:494:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 112, + "linearizedBaseContracts": [ + 112, + 2559 + ], + "name": "Ownable", + "nameLocation": "672:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "713:6:0", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "697:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 13, + "name": "OwnershipTransferred", + "nameLocation": "732:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "769:13:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "753:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "800:8:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "784:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "752:57:0" + }, + "src": "726:84:0" + }, + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "926:49:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "955:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "955:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "936:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "936:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "936:32:0" + } + ] + }, + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "816:91:0", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "id": 23, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [], + "src": "923:2:0" + }, + "returnParameters": { + "id": 16, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:0:0" + }, + "scope": 112, + "src": "912:63:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 30, + "nodeType": "Block", + "src": "1084:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "1094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1094:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28, + "nodeType": "ExpressionStatement", + "src": "1094:13:0" + }, + { + "id": 29, + "nodeType": "PlaceholderStatement", + "src": "1117:1:0" + } + ] + }, + "documentation": { + "id": 24, + "nodeType": "StructuredDocumentation", + "src": "981:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 31, + "name": "onlyOwner", + "nameLocation": "1072:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "1081:2:0" + }, + "src": "1063:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 39, + "nodeType": "Block", + "src": "1256:30:0", + "statements": [ + { + "expression": { + "id": 37, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1273:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 36, + "id": 38, + "nodeType": "Return", + "src": "1266:13:0" + } + ] + }, + "documentation": { + "id": 32, + "nodeType": "StructuredDocumentation", + "src": "1131:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 40, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1210:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "1215:2:0" + }, + "returnParameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "1247:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1247:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1246:9:0" + }, + "scope": 112, + "src": "1201:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 53, + "nodeType": "Block", + "src": "1404:85:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1422:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1422:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 47, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "1433:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1433:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1422:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1447:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 44, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1414:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1414:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 52, + "nodeType": "ExpressionStatement", + "src": "1414:68:0" + } + ] + }, + "documentation": { + "id": 41, + "nodeType": "StructuredDocumentation", + "src": "1292:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 54, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1368:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 42, + "nodeType": "ParameterList", + "parameters": [], + "src": "1379:2:0" + }, + "returnParameters": { + "id": 43, + "nodeType": "ParameterList", + "parameters": [], + "src": "1404:0:0" + }, + "scope": 112, + "src": "1359:130:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 67, + "nodeType": "Block", + "src": "1885:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1922:1:0", + "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": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:0", + "typeDescriptions": {} + } + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1914:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 60, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "1895:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1895:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 66, + "nodeType": "ExpressionStatement", + "src": "1895:30:0" + } + ] + }, + "documentation": { + "id": 55, + "nodeType": "StructuredDocumentation", + "src": "1495:331:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 68, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 58, + "kind": "modifierInvocation", + "modifierName": { + "id": 57, + "name": "onlyOwner", + "nameLocations": [ + "1875:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "1875:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1875:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "1840:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [], + "src": "1857:2:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [], + "src": "1885:0:0" + }, + "scope": 112, + "src": "1831:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 90, + "nodeType": "Block", + "src": "2151:128:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 77, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "2169:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2189:1:0", + "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": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2181:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2181:7:0", + "typeDescriptions": {} + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2181:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2169:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:40:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 76, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2161:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 85, + "nodeType": "ExpressionStatement", + "src": "2161:73:0" + }, + { + "expression": { + "arguments": [ + { + "id": 87, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "2263:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 86, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2244:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2244:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 89, + "nodeType": "ExpressionStatement", + "src": "2244:28:0" + } + ] + }, + "documentation": { + "id": 69, + "nodeType": "StructuredDocumentation", + "src": "1938:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 91, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 74, + "kind": "modifierInvocation", + "modifierName": { + "id": 73, + "name": "onlyOwner", + "nameLocations": [ + "2141:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "2141:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2141:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2090:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2116:8:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "2108:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2107:18:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [], + "src": "2151:0:0" + }, + "scope": 112, + "src": "2081:198:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 110, + "nodeType": "Block", + "src": "2496:124:0", + "statements": [ + { + "assignments": [ + 98 + ], + "declarations": [ + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2514:8:0", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "2506:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2506:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 100, + "initialValue": { + "id": 99, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2525:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2506:25:0" + }, + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 101, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2541:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "2550:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2541:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "2541:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 106, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "2594:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 107, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "2604:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 105, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "2573:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 109, + "nodeType": "EmitStatement", + "src": "2568:45:0" + } + ] + }, + "documentation": { + "id": 92, + "nodeType": "StructuredDocumentation", + "src": "2285:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2442:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2469:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "2461:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 93, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2461:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2460:18:0" + }, + "returnParameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "2496:0:0" + }, + "scope": 112, + "src": "2433:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 113, + "src": "654:1968:0", + "usedErrors": [] + } + ], + "src": "102:2521:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "ERC20": [ + 699 + ], + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 700, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 114, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "105:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 115, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 778, + "src": "130:22:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 116, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 803, + "src": "153:41:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 117, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 2560, + "src": "195:33:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 119, + "name": "Context", + "nameLocations": [ + "1419:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "1419:7:1" + }, + "id": 120, + "nodeType": "InheritanceSpecifier", + "src": "1419:7:1" + }, + { + "baseName": { + "id": 121, + "name": "IERC20", + "nameLocations": [ + "1428:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1428:6:1" + }, + "id": 122, + "nodeType": "InheritanceSpecifier", + "src": "1428:6:1" + }, + { + "baseName": { + "id": 123, + "name": "IERC20Metadata", + "nameLocations": [ + "1436:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 802, + "src": "1436:14:1" + }, + "id": 124, + "nodeType": "InheritanceSpecifier", + "src": "1436:14:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 118, + "nodeType": "StructuredDocumentation", + "src": "230:1170:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." + }, + "fullyImplemented": true, + "id": 699, + "linearizedBaseContracts": [ + 699, + 802, + 777, + 2559 + ], + "name": "ERC20", + "nameLocation": "1410:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1493:9:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1457:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 127, + "keyType": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1457:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1476:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 134, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1565:11:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1509:67:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 133, + "keyType": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1509:47:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 132, + "keyType": { + "id": 130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1528:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1599:12:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1583:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1583:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1633:5:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1618:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 137, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 140, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1659:7:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1644:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 139, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1644:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 156, + "nodeType": "Block", + "src": "2032:57:1", + "statements": [ + { + "expression": { + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 148, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2042:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 149, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "2050:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2042:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "2042:13:1" + }, + { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 152, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "2065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 153, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 145, + "src": "2075:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2065:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2065:17:1" + } + ] + }, + "documentation": { + "id": 141, + "nodeType": "StructuredDocumentation", + "src": "1673:298:1", + "text": " @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 157, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "name_", + "nameLocation": "2002:5:1", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "1988:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 142, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1988:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "2023:7:1", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2009:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 144, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2009:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1987:44:1" + }, + "returnParameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [], + "src": "2032:0:1" + }, + "scope": 699, + "src": "1976:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 789 + ], + "body": { + "id": 166, + "nodeType": "Block", + "src": "2223:29:1", + "statements": [ + { + "expression": { + "id": 164, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2240:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 163, + "id": 165, + "nodeType": "Return", + "src": "2233:12:1" + } + ] + }, + "documentation": { + "id": 158, + "nodeType": "StructuredDocumentation", + "src": "2095:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 167, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2163:4:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 160, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2190:8:1" + }, + "parameters": { + "id": 159, + "nodeType": "ParameterList", + "parameters": [], + "src": "2167:2:1" + }, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "2208:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 161, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2208:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2207:15:1" + }, + "scope": 699, + "src": "2154:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 795 + ], + "body": { + "id": 176, + "nodeType": "Block", + "src": "2436:31:1", + "statements": [ + { + "expression": { + "id": 174, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "2453:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 173, + "id": 175, + "nodeType": "Return", + "src": "2446:14:1" + } + ] + }, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "2258:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2374:6:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 170, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2403:8:1" + }, + "parameters": { + "id": 169, + "nodeType": "ParameterList", + "parameters": [], + "src": "2380:2:1" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 177, + "src": "2421:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 171, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2421:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2420:15:1" + }, + "scope": 699, + "src": "2365:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 801 + ], + "body": { + "id": 186, + "nodeType": "Block", + "src": "3156:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3173:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 183, + "id": 185, + "nodeType": "Return", + "src": "3166:9:1" + } + ] + }, + "documentation": { + "id": 178, + "nodeType": "StructuredDocumentation", + "src": "2473:613:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3100:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 180, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3131:8:1" + }, + "parameters": { + "id": 179, + "nodeType": "ParameterList", + "parameters": [], + "src": "3108:2:1" + }, + "returnParameters": { + "id": 183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3149:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 181, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3148:7:1" + }, + "scope": 699, + "src": "3091:91:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 726 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "3312:36:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "3329:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "3322:19:1" + } + ] + }, + "documentation": { + "id": 188, + "nodeType": "StructuredDocumentation", + "src": "3188:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "3251:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 190, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3285:8:1" + }, + "parameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [], + "src": "3262:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "3303:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3303:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3302:9:1" + }, + "scope": 699, + "src": "3242:106:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 734 + ], + "body": { + "id": 210, + "nodeType": "Block", + "src": "3489:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 206, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "3506:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 208, + "indexExpression": { + "id": 207, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3506:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 205, + "id": 209, + "nodeType": "Return", + "src": "3499:25:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "3354:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3415:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 202, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3462:8:1" + }, + "parameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "account", + "nameLocation": "3433:7:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3425:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 199, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3425:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3424:17:1" + }, + "returnParameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3480:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3480:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3479:9:1" + }, + "scope": 699, + "src": "3406:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 744 + ], + "body": { + "id": 235, + "nodeType": "Block", + "src": "3812:104:1", + "statements": [ + { + "assignments": [ + 223 + ], + "declarations": [ + { + "constant": false, + "id": 223, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3830:5:1", + "nodeType": "VariableDeclaration", + "scope": 235, + "src": "3822:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3822:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 226, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 224, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3838:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3838:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3822:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 228, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 223, + "src": "3870:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 229, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "3877:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 230, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "3881:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 227, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 459, + "src": "3860:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3860:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 232, + "nodeType": "ExpressionStatement", + "src": "3860:28:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3905:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 221, + "id": 234, + "nodeType": "Return", + "src": "3898:11:1" + } + ] + }, + "documentation": { + "id": 212, + "nodeType": "StructuredDocumentation", + "src": "3537:185:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." + }, + "functionSelector": "a9059cbb", + "id": 236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3736:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 218, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3788:8:1" + }, + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "to", + "nameLocation": "3753:2:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 216, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3765:6:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3757:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3744:28:1" + }, + "returnParameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3806:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3806:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3805:6:1" + }, + "scope": 699, + "src": "3727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 253, + "nodeType": "Block", + "src": "4072:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 247, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "4089:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 249, + "indexExpression": { + "id": 248, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "4101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4089:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "4108:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4089:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 246, + "id": 252, + "nodeType": "Return", + "src": "4082:34:1" + } + ] + }, + "documentation": { + "id": 237, + "nodeType": "StructuredDocumentation", + "src": "3922:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3983:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 243, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4045:8:1" + }, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4001:5:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "3993:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3993:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4016:7:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4008:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3992:32:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4063:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4063:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4062:9:1" + }, + "scope": 699, + "src": "3974:149:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 764 + ], + "body": { + "id": 278, + "nodeType": "Block", + "src": "4520:108:1", + "statements": [ + { + "assignments": [ + 266 + ], + "declarations": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4538:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "4530:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4530:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 269, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 267, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4546:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4546:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4530:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 271, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "4577:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 272, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 257, + "src": "4584:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 273, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "4593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 270, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "4568:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 275, + "nodeType": "ExpressionStatement", + "src": "4568:32:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 264, + "id": 277, + "nodeType": "Return", + "src": "4610:11:1" + } + ] + }, + "documentation": { + "id": 255, + "nodeType": "StructuredDocumentation", + "src": "4129:297:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 279, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4440:7:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 261, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4496:8:1" + }, + "parameters": { + "id": 260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 257, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4456:7:1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4448:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4448:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4473:6:1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4465:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4447:33:1" + }, + "returnParameters": { + "id": 264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4514:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 262, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4514:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4513:6:1" + }, + "scope": 699, + "src": "4431:197:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 776 + ], + "body": { + "id": 311, + "nodeType": "Block", + "src": "5323:153:1", + "statements": [ + { + "assignments": [ + 293 + ], + "declarations": [ + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5341:7:1", + "nodeType": "VariableDeclaration", + "scope": 311, + "src": "5333:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 296, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 294, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5351:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5351:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5333:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 298, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5389:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 293, + "src": "5395:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "5404:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 676, + "src": "5373:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5373:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "ExpressionStatement", + "src": "5373:38:1" + }, + { + "expression": { + "arguments": [ + { + "id": 304, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5431:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 305, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "5437:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 306, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "5441:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 303, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 459, + "src": "5421:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5421:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "5421:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5465:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 291, + "id": 310, + "nodeType": "Return", + "src": "5458:11:1" + } + ] + }, + "documentation": { + "id": 280, + "nodeType": "StructuredDocumentation", + "src": "4634:551:1", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." + }, + "functionSelector": "23b872dd", + "id": 312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "5199:12:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 288, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5299:8:1" + }, + "parameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "mutability": "mutable", + "name": "from", + "nameLocation": "5229:4:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5221:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "to", + "nameLocation": "5251:2:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5243:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5243:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5271:6:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5263:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5263:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5211:72:1" + }, + "returnParameters": { + "id": 291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 290, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5317:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 289, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5316:6:1" + }, + "scope": 699, + "src": "5190:286:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 340, + "nodeType": "Block", + "src": "5965:140:1", + "statements": [ + { + "assignments": [ + 323 + ], + "declarations": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5983:5:1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "5975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5975:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 326, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 324, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5991:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5991:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5975:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "6022:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 329, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6029:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 331, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "6048:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 332, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 330, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "6038:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6038:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 334, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "6066:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6038:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 327, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6013:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6013:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 337, + "nodeType": "ExpressionStatement", + "src": "6013:64:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6094:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 321, + "id": 339, + "nodeType": "Return", + "src": "6087:11:1" + } + ] + }, + "documentation": { + "id": 313, + "nodeType": "StructuredDocumentation", + "src": "5482:384:1", + "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "39509351", + "id": 341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "5880:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5906:7:1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5898:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 317, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "5923:10:1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5915:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5915:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5897:37:1" + }, + "returnParameters": { + "id": 321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5959:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 319, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5959:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5958:6:1" + }, + "scope": 699, + "src": "5871:234:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 381, + "nodeType": "Block", + "src": "6691:328:1", + "statements": [ + { + "assignments": [ + 352 + ], + "declarations": [ + { + "constant": false, + "id": 352, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6709:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "6701:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6701:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 355, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 353, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "6717:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6717:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6701:28:1" + }, + { + "assignments": [ + 357 + ], + "declarations": [ + { + "constant": false, + "id": 357, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "6747:16:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "6739:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 362, + "initialValue": { + "arguments": [ + { + "id": 359, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6776:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 360, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "6783:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 358, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "6766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6766:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6739:52:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 364, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "6809:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 365, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "6829:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6809:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6846:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + }, + "value": "ERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + } + ], + "id": 363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6801:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6801:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "6801:85:1" + }, + { + "id": 378, + "nodeType": "UncheckedBlock", + "src": "6896:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 371, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6929:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 372, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "6936:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 373, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "6945:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 374, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "6964:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6945:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 370, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6920:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6920:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "6920:60:1" + } + ] + }, + { + "expression": { + "hexValue": "74727565", + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7008:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 350, + "id": 380, + "nodeType": "Return", + "src": "7001:11:1" + } + ] + }, + "documentation": { + "id": 342, + "nodeType": "StructuredDocumentation", + "src": "6111:476:1", + "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." + }, + "functionSelector": "a457c2d7", + "id": 382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "6601:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 344, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6627:7:1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6619:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6619:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "6644:15:1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6636:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6618:42:1" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6685:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 348, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6685:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6684:6:1" + }, + "scope": 699, + "src": "6592:427:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 458, + "nodeType": "Block", + "src": "7581:710:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 393, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7599:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7615:1:1", + "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": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7607:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7607:7:1", + "typeDescriptions": {} + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7607:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7599:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7619:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + }, + "value": "ERC20: transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + } + ], + "id": 392, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7591:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7591:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 401, + "nodeType": "ExpressionStatement", + "src": "7591:68:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 403, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "7677:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7691:1:1", + "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": 405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7683:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7683:7:1", + "typeDescriptions": {} + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7683:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7677:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7695:37:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + }, + "value": "ERC20: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + } + ], + "id": 402, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7669:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7669:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 411, + "nodeType": "ExpressionStatement", + "src": "7669:64:1" + }, + { + "expression": { + "arguments": [ + { + "id": 413, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7765:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 414, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "7771:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 415, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7775:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 412, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "7744:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7744:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 417, + "nodeType": "ExpressionStatement", + "src": "7744:38:1" + }, + { + "assignments": [ + 419 + ], + "declarations": [ + { + "constant": false, + "id": 419, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "7801:11:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "7793:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7793:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 423, + "initialValue": { + "baseExpression": { + "id": 420, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "7815:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 422, + "indexExpression": { + "id": 421, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7825:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7815:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7793:37:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 425, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 419, + "src": "7848:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 426, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7863:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7848:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7871:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + }, + "value": "ERC20: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + } + ], + "id": 424, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7840:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7840:72:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 430, + "nodeType": "ExpressionStatement", + "src": "7840:72:1" + }, + { + "id": 445, + "nodeType": "UncheckedBlock", + "src": "7922:273:1", + "statements": [ + { + "expression": { + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 431, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "7946:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 433, + "indexExpression": { + "id": 432, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7956:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7946:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 434, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 419, + "src": "7964:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 435, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7978:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7964:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7946:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 438, + "nodeType": "ExpressionStatement", + "src": "7946:38:1" + }, + { + "expression": { + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 439, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "8161:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 441, + "indexExpression": { + "id": 440, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8161:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 442, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8178:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8161:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 444, + "nodeType": "ExpressionStatement", + "src": "8161:23:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "id": 447, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "8219:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 448, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8225:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 449, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8229:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 446, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "8210:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8210:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 451, + "nodeType": "EmitStatement", + "src": "8205:31:1" + }, + { + "expression": { + "arguments": [ + { + "id": 453, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "8267:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8273:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 455, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8277:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 452, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8247:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8247:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 457, + "nodeType": "ExpressionStatement", + "src": "8247:37:1" + } + ] + }, + "documentation": { + "id": 383, + "nodeType": "StructuredDocumentation", + "src": "7025:443:1", + "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." + }, + "id": 459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "7482:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 385, + "mutability": "mutable", + "name": "from", + "nameLocation": "7509:4:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7501:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7501:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 387, + "mutability": "mutable", + "name": "to", + "nameLocation": "7531:2:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7523:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7523:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7551:6:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7543:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7491:72:1" + }, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "7581:0:1" + }, + "scope": 699, + "src": "7473:818:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 515, + "nodeType": "Block", + "src": "8632:470:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 468, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8669:1:1", + "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": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8661:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8661:7:1", + "typeDescriptions": {} + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8661:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8650:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8673:33:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 467, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8642:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8642:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 476, + "nodeType": "ExpressionStatement", + "src": "8642:65:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8747:1:1", + "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": 479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8739:7:1", + "typeDescriptions": {} + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8739:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 482, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 483, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 477, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "8718:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8718:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 485, + "nodeType": "ExpressionStatement", + "src": "8718:49:1" + }, + { + "expression": { + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 486, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "8778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 487, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8794:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8778:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "8778:22:1" + }, + { + "id": 496, + "nodeType": "UncheckedBlock", + "src": "8810:175:1", + "statements": [ + { + "expression": { + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 490, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "8946:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 492, + "indexExpression": { + "id": 491, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8956:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8946:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 493, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8968:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8946:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 495, + "nodeType": "ExpressionStatement", + "src": "8946:28:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9016:1:1", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9008:7:1", + "typeDescriptions": {} + } + }, + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9008:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 502, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "9020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 503, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "9029:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 497, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "8999:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8999:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 505, + "nodeType": "EmitStatement", + "src": "8994:42:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9075:1:1", + "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": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9067:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9067:7:1", + "typeDescriptions": {} + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9067:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 511, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "9079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 512, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "9088:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 506, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9047:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9047:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 514, + "nodeType": "ExpressionStatement", + "src": "9047:48:1" + } + ] + }, + "documentation": { + "id": 460, + "nodeType": "StructuredDocumentation", + "src": "8297:265:1", + "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." + }, + "id": 516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "8576:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "account", + "nameLocation": "8590:7:1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "8582:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8582:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "mutability": "mutable", + "name": "amount", + "nameLocation": "8607:6:1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "8599:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8581:33:1" + }, + "returnParameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [], + "src": "8632:0:1" + }, + "scope": 699, + "src": "8567:535:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 587, + "nodeType": "Block", + "src": "9487:594:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 525, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9524:1:1", + "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": 527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9516:7:1", + "typeDescriptions": {} + } + }, + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9516:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9505:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9528:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + }, + "value": "ERC20: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + } + ], + "id": 524, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9497:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9497:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 533, + "nodeType": "ExpressionStatement", + "src": "9497:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9596:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9613:1:1", + "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": 537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9605:7:1", + "typeDescriptions": {} + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9605:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 540, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9617:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 534, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "9575:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9575:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 542, + "nodeType": "ExpressionStatement", + "src": "9575:49:1" + }, + { + "assignments": [ + 544 + ], + "declarations": [ + { + "constant": false, + "id": 544, + "mutability": "mutable", + "name": "accountBalance", + "nameLocation": "9643:14:1", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "9635:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9635:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 548, + "initialValue": { + "baseExpression": { + "id": 545, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "9660:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 547, + "indexExpression": { + "id": 546, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9670:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9660:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9635:43:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 550, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "9696:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 551, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9714:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9696:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9722:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + }, + "value": "ERC20: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + } + ], + "id": 549, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9688:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 555, + "nodeType": "ExpressionStatement", + "src": "9688:71:1" + }, + { + "id": 568, + "nodeType": "UncheckedBlock", + "src": "9769:194:1", + "statements": [ + { + "expression": { + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 556, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "9793:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 558, + "indexExpression": { + "id": 557, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9803:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9793:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 559, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "9814:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 560, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9831:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9814:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9793:44:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 563, + "nodeType": "ExpressionStatement", + "src": "9793:44:1" + }, + { + "expression": { + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 564, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "9930:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 565, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9946:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9930:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 567, + "nodeType": "ExpressionStatement", + "src": "9930:22:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "id": 570, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9987:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10004:1:1", + "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": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9996:7:1", + "typeDescriptions": {} + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9996:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 575, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "10008:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 569, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "9978:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9978:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 577, + "nodeType": "EmitStatement", + "src": "9973:42:1" + }, + { + "expression": { + "arguments": [ + { + "id": 579, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "10046:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10063:1:1", + "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": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10055:7:1", + "typeDescriptions": {} + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10055:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 584, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "10067:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 578, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "10026:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10026:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "10026:48:1" + } + ] + }, + "documentation": { + "id": 517, + "nodeType": "StructuredDocumentation", + "src": "9108:309:1", + "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." + }, + "id": 588, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "9431:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "account", + "nameLocation": "9445:7:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "9437:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9437:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9462:6:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "9454:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9436:33:1" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [], + "src": "9487:0:1" + }, + "scope": 699, + "src": "9422:659:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 632, + "nodeType": "Block", + "src": "10617:257:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 599, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10635:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10652:1:1", + "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": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10644:7:1", + "typeDescriptions": {} + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10644:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10635:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10656:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + }, + "value": "ERC20: approve from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + } + ], + "id": 598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10627:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10627:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 607, + "nodeType": "ExpressionStatement", + "src": "10627:68:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 609, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10713:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10732:1:1", + "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": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10724:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10724:7:1", + "typeDescriptions": {} + } + }, + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10724:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10713:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10736:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + }, + "value": "ERC20: approve to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + } + ], + "id": 608, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10705:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10705:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 617, + "nodeType": "ExpressionStatement", + "src": "10705:68:1" + }, + { + "expression": { + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 618, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "10784:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 621, + "indexExpression": { + "id": 619, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10796:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10784:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 622, + "indexExpression": { + "id": 620, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10803:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10784:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 623, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "10814:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10784:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "10784:36:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 627, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10844:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 628, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10851:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "10860:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 626, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 720, + "src": "10835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10835:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 631, + "nodeType": "EmitStatement", + "src": "10830:37:1" + } + ] + }, + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "10087:412:1", + "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." + }, + "id": 633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "10513:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10539:5:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10531:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10531:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10562:7:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10554:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10554:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10587:6:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10579:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10521:78:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "10617:0:1" + }, + "scope": 699, + "src": "10504:370:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 675, + "nodeType": "Block", + "src": "11275:321:1", + "statements": [ + { + "assignments": [ + 644 + ], + "declarations": [ + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "11293:16:1", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "11285:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 649, + "initialValue": { + "arguments": [ + { + "id": 646, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "11322:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 647, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "11329:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 645, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "11312:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11312:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11285:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 650, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11351:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11376:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11376:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 651, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11371:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11371:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11385:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11371:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11351:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 674, + "nodeType": "IfStatement", + "src": "11347:243:1", + "trueBody": { + "id": 673, + "nodeType": "Block", + "src": "11390:200:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 658, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11412:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 659, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "11432:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11412:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11440:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "typeString": "literal_string \"ERC20: insufficient allowance\"" + }, + "value": "ERC20: insufficient allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "typeString": "literal_string \"ERC20: insufficient allowance\"" + } + ], + "id": 657, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11404:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11404:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "11404:68:1" + }, + { + "id": 672, + "nodeType": "UncheckedBlock", + "src": "11486:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 665, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "11523:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 666, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "11530:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 667, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11539:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 668, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "11558:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11539:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 664, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "11514:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11514:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 671, + "nodeType": "ExpressionStatement", + "src": "11514:51:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 634, + "nodeType": "StructuredDocumentation", + "src": "10880:270:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." + }, + "id": 676, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "11164:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 636, + "mutability": "mutable", + "name": "owner", + "nameLocation": "11197:5:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11189:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11189:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "spender", + "nameLocation": "11220:7:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11212:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11212:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11245:6:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11237:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11237:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11179:78:1" + }, + "returnParameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "11275:0:1" + }, + "scope": 699, + "src": "11155:441:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 686, + "nodeType": "Block", + "src": "12299:2:1", + "statements": [] + }, + "documentation": { + "id": 677, + "nodeType": "StructuredDocumentation", + "src": "11602:573:1", + "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 687, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "12189:20:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "from", + "nameLocation": "12227:4:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12219:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12219:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "to", + "nameLocation": "12249:2:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12241:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12241:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "amount", + "nameLocation": "12269:6:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12261:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12261:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12209:72:1" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [], + "src": "12299:0:1" + }, + "scope": 699, + "src": "12180:121:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 697, + "nodeType": "Block", + "src": "13007:2:1", + "statements": [] + }, + "documentation": { + "id": 688, + "nodeType": "StructuredDocumentation", + "src": "12307:577:1", + "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 698, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterTokenTransfer", + "nameLocation": "12898:19:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "from", + "nameLocation": "12935:4:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12927:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12927:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 692, + "mutability": "mutable", + "name": "to", + "nameLocation": "12957:2:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12949:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12949:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "amount", + "nameLocation": "12977:6:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12969:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12969:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12917:72:1" + }, + "returnParameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [], + "src": "13007:0:1" + }, + "scope": 699, + "src": "12889:120:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 700, + "src": "1401:11610:1", + "usedErrors": [] + } + ], + "src": "105:12907:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 777 + ] + }, + "id": 778, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 701, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "106:23:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 702, + "nodeType": "StructuredDocumentation", + "src": "131:70:2", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 777, + "linearizedBaseContracts": [ + 777 + ], + "name": "IERC20", + "nameLocation": "212:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 703, + "nodeType": "StructuredDocumentation", + "src": "225:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 711, + "name": "Transfer", + "nameLocation": "394:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 705, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "419:4:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "403:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "403:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 707, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "441:2:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "425:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "425:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 709, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "453:5:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "445:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "445:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "402:57:2" + }, + "src": "388:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "466:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 720, + "name": "Approval", + "nameLocation": "625:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "650:5:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "634:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "634:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "673:7:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "657:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "657:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "690:5:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "682:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "682:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "633:63:2" + }, + "src": "619:78:2" + }, + { + "documentation": { + "id": 721, + "nodeType": "StructuredDocumentation", + "src": "703:66:2", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 726, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "783:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 722, + "nodeType": "ParameterList", + "parameters": [], + "src": "794:2:2" + }, + "returnParameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "820:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "820:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "819:9:2" + }, + "scope": 777, + "src": "774:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 727, + "nodeType": "StructuredDocumentation", + "src": "835:72:2", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 734, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 734, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 734, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 777, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 735, + "nodeType": "StructuredDocumentation", + "src": "986:202:2", + "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 744, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1202:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 737, + "mutability": "mutable", + "name": "to", + "nameLocation": "1219:2:2", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1211:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 739, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1231:6:2", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1223:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1210:28:2" + }, + "returnParameters": { + "id": 743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1257:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 741, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1257:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1256:6:2" + }, + "scope": 777, + "src": "1193:70:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 745, + "nodeType": "StructuredDocumentation", + "src": "1269:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1547:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 747, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1565:5:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1557:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 746, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1557:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1580:7:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1572:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1572:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1556:32:2" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1612:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1612:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1611:9:2" + }, + "scope": 777, + "src": "1538:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 755, + "nodeType": "StructuredDocumentation", + "src": "1627:642:2", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2283:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 757, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2299:7:2", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2291:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2291:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 759, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2316:6:2", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2308:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2308:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2290:33:2" + }, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2342:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 761, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2342:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2341:6:2" + }, + "scope": 777, + "src": "2274:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 765, + "nodeType": "StructuredDocumentation", + "src": "2354:287:2", + "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 776, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2655:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 767, + "mutability": "mutable", + "name": "from", + "nameLocation": "2685:4:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2677:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2677:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 769, + "mutability": "mutable", + "name": "to", + "nameLocation": "2707:2:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2699:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2699:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 771, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2727:6:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2719:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2667:72:2" + }, + "returnParameters": { + "id": 775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 774, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2758:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2758:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2757:6:2" + }, + "scope": 777, + "src": "2646:118:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 778, + "src": "202:2564:2", + "usedErrors": [] + } + ], + "src": "106:2661:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 803, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 779, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "110:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 780, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 803, + "sourceUnit": 778, + "src": "135:23:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 782, + "name": "IERC20", + "nameLocations": [ + "305:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "305:6:3" + }, + "id": 783, + "nodeType": "InheritanceSpecifier", + "src": "305:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 781, + "nodeType": "StructuredDocumentation", + "src": "160:116:3", + "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" + }, + "fullyImplemented": false, + "id": 802, + "linearizedBaseContracts": [ + 802, + 777 + ], + "name": "IERC20Metadata", + "nameLocation": "287:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "318:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "386:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 785, + "nodeType": "ParameterList", + "parameters": [], + "src": "390:2:3" + }, + "returnParameters": { + "id": 788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 787, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "416:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 786, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "416:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "415:15:3" + }, + "scope": 802, + "src": "377:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 790, + "nodeType": "StructuredDocumentation", + "src": "437:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 795, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "507:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 791, + "nodeType": "ParameterList", + "parameters": [], + "src": "513:2:3" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 795, + "src": "539:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 792, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "539:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "538:15:3" + }, + "scope": 802, + "src": "498:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 796, + "nodeType": "StructuredDocumentation", + "src": "560:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 801, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "639:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [], + "src": "647:2:3" + }, + "returnParameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "673:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 798, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "673:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "672:7:3" + }, + "scope": 802, + "src": "630:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 803, + "src": "277:405:3", + "usedErrors": [] + } + ], + "src": "110:573:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "exportedSymbols": { + "IERC20Permit": [ + 838 + ] + }, + "id": 839, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 804, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "114:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Permit", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 805, + "nodeType": "StructuredDocumentation", + "src": "139:480:4", + "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all." + }, + "fullyImplemented": false, + "id": 838, + "linearizedBaseContracts": [ + 838 + ], + "name": "IERC20Permit", + "nameLocation": "630:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 806, + "nodeType": "StructuredDocumentation", + "src": "649:792:4", + "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]." + }, + "functionSelector": "d505accf", + "id": 823, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "1455:6:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 808, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1479:5:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1471:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1471:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 810, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1502:7:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1494:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1494:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "value", + "nameLocation": "1527:5:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1519:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1519:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 814, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1550:8:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1542:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1542:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "mutability": "mutable", + "name": "v", + "nameLocation": "1574:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1568:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 815, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1568:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "mutability": "mutable", + "name": "r", + "nameLocation": "1593:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1585:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1585:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 820, + "mutability": "mutable", + "name": "s", + "nameLocation": "1612:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1604:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 819, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1604:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1461:158:4" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1628:0:4" + }, + "scope": 838, + "src": "1446:183:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 824, + "nodeType": "StructuredDocumentation", + "src": "1635:294:4", + "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times." + }, + "functionSelector": "7ecebe00", + "id": 831, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nameLocation": "1943:6:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 826, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1958:5:4", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "1950:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1950:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1949:15:4" + }, + "returnParameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "1988:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1987:9:4" + }, + "scope": 838, + "src": "1934:63:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 832, + "nodeType": "StructuredDocumentation", + "src": "2003:128:4", + "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." + }, + "functionSelector": "3644e515", + "id": 837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nameLocation": "2198:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "2214:2:4" + }, + "returnParameters": { + "id": 836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2240:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 834, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2240:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2239:9:4" + }, + "scope": 838, + "src": "2189:60:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 839, + "src": "620:1631:4", + "usedErrors": [] + } + ], + "src": "114:2138:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "SafeERC20": [ + 1119 + ] + }, + "id": 1120, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 840, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "115:23:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 841, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 778, + "src": "140:23:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "file": "../extensions/draft-IERC20Permit.sol", + "id": 842, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 839, + "src": "164:46:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../../utils/Address.sol", + "id": 843, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 2538, + "src": "211:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeERC20", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 844, + "nodeType": "StructuredDocumentation", + "src": "249:457:5", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 1119, + "linearizedBaseContracts": [ + 1119 + ], + "name": "SafeERC20", + "nameLocation": "715:9:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 847, + "libraryName": { + "id": 845, + "name": "Address", + "nameLocations": [ + "737:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2537, + "src": "737:7:5" + }, + "nodeType": "UsingForDirective", + "src": "731:26:5", + "typeName": { + "id": 846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "749:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "body": { + "id": 869, + "nodeType": "Block", + "src": "865:103:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 858, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "895:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 861, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "925:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "931:8:5", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 744, + "src": "925:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "940:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "925:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 864, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 865, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "954:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 859, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "902:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "906:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "902:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "902:58:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 857, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "875:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "875:86:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 868, + "nodeType": "ExpressionStatement", + "src": "875:86:5" + } + ] + }, + "id": 870, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nameLocation": "772:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 850, + "mutability": "mutable", + "name": "token", + "nameLocation": "801:5:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "794:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 849, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 848, + "name": "IERC20", + "nameLocations": [ + "794:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "794:6:5" + }, + "referencedDeclaration": 777, + "src": "794:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 852, + "mutability": "mutable", + "name": "to", + "nameLocation": "824:2:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "816:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "816:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 854, + "mutability": "mutable", + "name": "value", + "nameLocation": "844:5:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "836:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "836:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "784:71:5" + }, + "returnParameters": { + "id": 856, + "nodeType": "ParameterList", + "parameters": [], + "src": "865:0:5" + }, + "scope": 1119, + "src": "763:205:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 895, + "nodeType": "Block", + "src": "1102:113:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 883, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "1132:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 886, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "1162:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1168:12:5", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 776, + "src": "1162:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1181:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1162:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 889, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 875, + "src": "1191:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "1197:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 891, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 879, + "src": "1201:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 884, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1139:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1143:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1139:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1139:68:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 882, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1112:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1112:96:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "1112:96:5" + } + ] + }, + "id": 896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "983:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "token", + "nameLocation": "1016:5:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1009:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 872, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 871, + "name": "IERC20", + "nameLocations": [ + "1009:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1009:6:5" + }, + "referencedDeclaration": 777, + "src": "1009:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "mutability": "mutable", + "name": "from", + "nameLocation": "1039:4:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1031:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1031:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "mutability": "mutable", + "name": "to", + "nameLocation": "1061:2:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1053:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1053:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 879, + "mutability": "mutable", + "name": "value", + "nameLocation": "1081:5:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1073:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1073:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "999:93:5" + }, + "returnParameters": { + "id": 881, + "nodeType": "ParameterList", + "parameters": [], + "src": "1102:0:5" + }, + "scope": 1119, + "src": "974:241:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 939, + "nodeType": "Block", + "src": "1581:497:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 908, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 904, + "src": "1830:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1839:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1830:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 911, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1829:12:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 916, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1870:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1862:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 914, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1862:7:5", + "typeDescriptions": {} + } + }, + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1862:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 918, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "1877:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 912, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "1846:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1852:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "1846:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1846:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1889:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1846:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 922, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1845:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1829:62:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1905:56:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 907, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1808:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1808:163:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 926, + "nodeType": "ExpressionStatement", + "src": "1808:163:5" + }, + { + "expression": { + "arguments": [ + { + "id": 928, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2001:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 931, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2031:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2037:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2031:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2045:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2031:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 934, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "2055:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 935, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 904, + "src": "2064:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 929, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2008:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2012:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2008:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2008:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 927, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1981:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1981:90:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "1981:90:5" + } + ] + }, + "documentation": { + "id": 897, + "nodeType": "StructuredDocumentation", + "src": "1221:249:5", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nameLocation": "1484:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 900, + "mutability": "mutable", + "name": "token", + "nameLocation": "1512:5:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1505:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 899, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 898, + "name": "IERC20", + "nameLocations": [ + "1505:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1505:6:5" + }, + "referencedDeclaration": 777, + "src": "1505:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 902, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1535:7:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1527:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 901, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1527:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "value", + "nameLocation": "1560:5:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1552:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1552:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1495:76:5" + }, + "returnParameters": { + "id": 906, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:5" + }, + "scope": 1119, + "src": "1475:603:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 975, + "nodeType": "Block", + "src": "2200:194:5", + "statements": [ + { + "assignments": [ + 951 + ], + "declarations": [ + { + "constant": false, + "id": 951, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2218:12:5", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "2210:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2210:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 962, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 956, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2257:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2249:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2249:7:5", + "typeDescriptions": {} + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2249:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 958, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "2264:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 952, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2233:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2239:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "2233:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2233:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 960, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "2275:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2233:47:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2210:70:5" + }, + { + "expression": { + "arguments": [ + { + "id": 964, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2310:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 967, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2340:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2346:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2340:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2354:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2340:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 970, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "2364:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 971, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "2373:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 965, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2317:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2321:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2317:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2317:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 963, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "2290:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2290:97:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 974, + "nodeType": "ExpressionStatement", + "src": "2290:97:5" + } + ] + }, + "id": 976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nameLocation": "2093:21:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 943, + "mutability": "mutable", + "name": "token", + "nameLocation": "2131:5:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2124:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 942, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 941, + "name": "IERC20", + "nameLocations": [ + "2124:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "2124:6:5" + }, + "referencedDeclaration": 777, + "src": "2124:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 945, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2154:7:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2146:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2146:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "value", + "nameLocation": "2179:5:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2171:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2171:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2114:76:5" + }, + "returnParameters": { + "id": 949, + "nodeType": "ParameterList", + "parameters": [], + "src": "2200:0:5" + }, + "scope": 1119, + "src": "2084:310:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1023, + "nodeType": "Block", + "src": "2516:370:5", + "statements": [ + { + "id": 1022, + "nodeType": "UncheckedBlock", + "src": "2526:354:5", + "statements": [ + { + "assignments": [ + 987 + ], + "declarations": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "oldAllowance", + "nameLocation": "2558:12:5", + "nodeType": "VariableDeclaration", + "scope": 1022, + "src": "2550:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2550:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 992, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2597:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2589:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 990, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2589:7:5", + "typeDescriptions": {} + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2589:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 994, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "2604:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 988, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2573:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2579:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "2573:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2550:62:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 998, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "2634:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 999, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2650:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2634:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2657:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 997, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2626:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2626:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "2626:75:5" + }, + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2723:12:5", + "nodeType": "VariableDeclaration", + "scope": 1022, + "src": "2715:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2715:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1009, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1006, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "2738:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1007, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2753:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2738:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2715:43:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1011, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2792:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1014, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2822:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2828:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2822:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2836:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2822:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1017, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "2846:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1018, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2855:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1012, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2799:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2803:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2799:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1010, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "2772:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2772:97:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1021, + "nodeType": "ExpressionStatement", + "src": "2772:97:5" + } + ] + } + ] + }, + "id": 1024, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nameLocation": "2409:21:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 979, + "mutability": "mutable", + "name": "token", + "nameLocation": "2447:5:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2440:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 978, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 977, + "name": "IERC20", + "nameLocations": [ + "2440:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "2440:6:5" + }, + "referencedDeclaration": 777, + "src": "2440:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 981, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2470:7:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2462:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2462:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 983, + "mutability": "mutable", + "name": "value", + "nameLocation": "2495:5:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2487:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2430:76:5" + }, + "returnParameters": { + "id": 985, + "nodeType": "ParameterList", + "parameters": [], + "src": "2516:0:5" + }, + "scope": 1119, + "src": "2400:486:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1079, + "nodeType": "Block", + "src": "3107:257:5", + "statements": [ + { + "assignments": [ + 1045 + ], + "declarations": [ + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "nonceBefore", + "nameLocation": "3125:11:5", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "3117:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3117:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1050, + "initialValue": { + "arguments": [ + { + "id": 1048, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3152:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1046, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3139:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3145:6:5", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 831, + "src": "3139:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3139:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3117:41:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1054, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3181:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1055, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "3188:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1056, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3197:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1057, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "3204:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1058, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "3214:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 1059, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1039, + "src": "3217:1:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1060, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3220:1:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 1051, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3168:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3174:6:5", + "memberName": "permit", + "nodeType": "MemberAccess", + "referencedDeclaration": 823, + "src": "3168:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3168:54:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "3168:54:5" + }, + { + "assignments": [ + 1064 + ], + "declarations": [ + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "nonceAfter", + "nameLocation": "3240:10:5", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "3232:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3232:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1069, + "initialValue": { + "arguments": [ + { + "id": 1067, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3266:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1065, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3253:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3259:6:5", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 831, + "src": "3253:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3253:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3232:40:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1071, + "name": "nonceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "3290:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1072, + "name": "nonceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "3304:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3318:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3304:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3290:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a207065726d697420646964206e6f742073756363656564", + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3321:35:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + }, + "value": "SafeERC20: permit did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + } + ], + "id": 1070, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3282:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1078, + "nodeType": "ExpressionStatement", + "src": "3282:75:5" + } + ] + }, + "id": 1080, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safePermit", + "nameLocation": "2901:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1027, + "mutability": "mutable", + "name": "token", + "nameLocation": "2934:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2921:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + }, + "typeName": { + "id": 1026, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1025, + "name": "IERC20Permit", + "nameLocations": [ + "2921:12:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 838, + "src": "2921:12:5" + }, + "referencedDeclaration": 838, + "src": "2921:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2957:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2949:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2949:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1031, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2980:7:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2972:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2972:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "mutability": "mutable", + "name": "value", + "nameLocation": "3005:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2997:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2997:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1035, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3028:8:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3020:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3020:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "mutability": "mutable", + "name": "v", + "nameLocation": "3052:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3046:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1036, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3046:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1039, + "mutability": "mutable", + "name": "r", + "nameLocation": "3071:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3063:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1038, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1041, + "mutability": "mutable", + "name": "s", + "nameLocation": "3090:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3082:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3082:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2911:186:5" + }, + "returnParameters": { + "id": 1043, + "nodeType": "ParameterList", + "parameters": [], + "src": "3107:0:5" + }, + "scope": 1119, + "src": "2892:472:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1117, + "nodeType": "Block", + "src": "3817:636:5", + "statements": [ + { + "assignments": [ + 1090 + ], + "declarations": [ + { + "constant": false, + "id": 1090, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4179:10:5", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "4166:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1089, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4166:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "arguments": [ + { + "id": 1096, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1086, + "src": "4220:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4226:34:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 1093, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1084, + "src": "4200:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4192:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4192:7:5", + "typeDescriptions": {} + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4192:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4207:12:5", + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2297, + "src": "4192:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4192:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4166:95:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1100, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1090, + "src": "4275:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4286:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4275:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4295:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4275:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1116, + "nodeType": "IfStatement", + "src": "4271:176:5", + "trueBody": { + "id": 1115, + "nodeType": "Block", + "src": "4298:149:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1107, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1090, + "src": "4370:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4383:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4383:4:5", + "typeDescriptions": {} + } + } + ], + "id": 1110, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4382:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1105, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4359:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4363:6:5", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4359:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4391:44:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 1104, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4351:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4351:85:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "4351:85:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1081, + "nodeType": "StructuredDocumentation", + "src": "3370:372:5", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 1118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nameLocation": "3756:19:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1084, + "mutability": "mutable", + "name": "token", + "nameLocation": "3783:5:5", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "3776:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1083, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1082, + "name": "IERC20", + "nameLocations": [ + "3776:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "3776:6:5" + }, + "referencedDeclaration": 777, + "src": "3776:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "data", + "nameLocation": "3803:4:5", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "3790:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1085, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3790:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3775:33:5" + }, + "returnParameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [], + "src": "3817:0:5" + }, + "scope": 1119, + "src": "3747:706:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1120, + "src": "707:3748:5", + "usedErrors": [] + } + ], + "src": "115:4341:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "ERC165": [ + 2832 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Strings": [ + 2808 + ] + }, + "id": 2047, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1121, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "107:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "./IERC721.sol", + "id": 1122, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2163, + "src": "132:23:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "./IERC721Receiver.sol", + "id": 1123, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2181, + "src": "156:31:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "./extensions/IERC721Metadata.sol", + "id": 1124, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2208, + "src": "188:42:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../utils/Address.sol", + "id": 1125, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2538, + "src": "231:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 1126, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2560, + "src": "265:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../utils/Strings.sol", + "id": 1127, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2809, + "src": "299:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 1128, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2833, + "src": "333:46:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1130, + "name": "Context", + "nameLocations": [ + "647:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "647:7:6" + }, + "id": 1131, + "nodeType": "InheritanceSpecifier", + "src": "647:7:6" + }, + { + "baseName": { + "id": 1132, + "name": "ERC165", + "nameLocations": [ + "656:6:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2832, + "src": "656:6:6" + }, + "id": 1133, + "nodeType": "InheritanceSpecifier", + "src": "656:6:6" + }, + { + "baseName": { + "id": 1134, + "name": "IERC721", + "nameLocations": [ + "664:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "664:7:6" + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "664:7:6" + }, + { + "baseName": { + "id": 1136, + "name": "IERC721Metadata", + "nameLocations": [ + "673:15:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2207, + "src": "673:15:6" + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "673:15:6" + } + ], + "canonicalName": "ERC721", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1129, + "nodeType": "StructuredDocumentation", + "src": "381:246:6", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 2046, + "linearizedBaseContracts": [ + 2046, + 2207, + 2162, + 2832, + 2844, + 2559 + ], + "name": "ERC721", + "nameLocation": "637:6:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1140, + "libraryName": { + "id": 1138, + "name": "Address", + "nameLocations": [ + "701:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2537, + "src": "701:7:6" + }, + "nodeType": "UsingForDirective", + "src": "695:26:6", + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "713:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "global": false, + "id": 1143, + "libraryName": { + "id": 1141, + "name": "Strings", + "nameLocations": [ + "732:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2808, + "src": "732:7:6" + }, + "nodeType": "UsingForDirective", + "src": "726:26:6", + "typeName": { + "id": 1142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "744:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1145, + "mutability": "mutable", + "name": "_name", + "nameLocation": "791:5:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "776:20:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 1144, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "776:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "838:7:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "823:22:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 1146, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "823:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "934:7:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "898:43:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 1150, + "keyType": { + "id": 1148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "906:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "898:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 1149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "917:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1155, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1028:9:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "992:45:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1154, + "keyType": { + "id": 1152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1000:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "992:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1129:15:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1093:51:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 1158, + "keyType": { + "id": 1156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1093:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 1157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1112:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1165, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1252:18:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1199:71:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 1164, + "keyType": { + "id": 1160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1207:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1199:44:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 1163, + "keyType": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1226:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1218:24:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 1162, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1237:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1181, + "nodeType": "Block", + "src": "1446:57:6", + "statements": [ + { + "expression": { + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1173, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1456:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1174, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "1464:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1456:13:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1176, + "nodeType": "ExpressionStatement", + "src": "1456:13:6" + }, + { + "expression": { + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1177, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1479:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1178, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1170, + "src": "1489:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1479:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1180, + "nodeType": "ExpressionStatement", + "src": "1479:17:6" + } + ] + }, + "documentation": { + "id": 1166, + "nodeType": "StructuredDocumentation", + "src": "1277:108:6", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 1182, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1416:5:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1402:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1167, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1402:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1170, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1437:7:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1423:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1169, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1401:44:6" + }, + "returnParameters": { + "id": 1172, + "nodeType": "ParameterList", + "parameters": [], + "src": "1446:0:6" + }, + "scope": 2046, + "src": "1390:113:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 2831, + 2843 + ], + "body": { + "id": 1212, + "nodeType": "Block", + "src": "1678:192:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1193, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1707:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1195, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "1727:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$2162_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$2162_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 1194, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1722:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1722:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$2162", + "typeString": "type(contract IERC721)" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1736:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1722:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1707:40:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1199, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1763:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1201, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "1783:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2207_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2207_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 1200, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1778:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1778:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$2207", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1800:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1778:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1763:48:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1707:104:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1208, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1851:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1206, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1827:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721_$2046_$", + "typeString": "type(contract super ERC721)" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1833:17:6", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2831, + "src": "1827:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1827:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1707:156:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1192, + "id": 1211, + "nodeType": "Return", + "src": "1688:175:6" + } + ] + }, + "documentation": { + "id": 1183, + "nodeType": "StructuredDocumentation", + "src": "1509:56:6", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1579:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1189, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1187, + "name": "ERC165", + "nameLocations": [ + "1646:6:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2832, + "src": "1646:6:6" + }, + { + "id": 1188, + "name": "IERC165", + "nameLocations": [ + "1654:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "1654:7:6" + } + ], + "src": "1637:25:6" + }, + "parameters": { + "id": 1186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1185, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1604:11:6", + "nodeType": "VariableDeclaration", + "scope": 1213, + "src": "1597:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1184, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1597:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1596:20:6" + }, + "returnParameters": { + "id": 1192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1213, + "src": "1672:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1190, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1672:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1671:6:6" + }, + "scope": 2046, + "src": "1570:300:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2087 + ], + "body": { + "id": 1236, + "nodeType": "Block", + "src": "2010:123:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1223, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1216, + "src": "2028:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2045:1:6", + "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": 1225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2037:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2037:7:6", + "typeDescriptions": {} + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2037:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2028:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572", + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2049:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" + }, + "value": "ERC721: address zero is not a valid owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" + } + ], + "id": 1222, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2020:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2020:73:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1231, + "nodeType": "ExpressionStatement", + "src": "2020:73:6" + }, + { + "expression": { + "baseExpression": { + "id": 1232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "2110:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1234, + "indexExpression": { + "id": 1233, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1216, + "src": "2120:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2110:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1221, + "id": 1235, + "nodeType": "Return", + "src": "2103:23:6" + } + ] + }, + "documentation": { + "id": 1214, + "nodeType": "StructuredDocumentation", + "src": "1876:48:6", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 1237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1938:9:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1218, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1983:8:6" + }, + "parameters": { + "id": 1217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1216, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1956:5:6", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1948:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1948:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1947:15:6" + }, + "returnParameters": { + "id": 1221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "2001:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2001:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2000:9:6" + }, + "scope": 2046, + "src": "1929:204:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2095 + ], + "body": { + "id": 1264, + "nodeType": "Block", + "src": "2271:138:6", + "statements": [ + { + "assignments": [ + 1247 + ], + "declarations": [ + { + "constant": false, + "id": 1247, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2289:5:6", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "2281:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2281:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1251, + "initialValue": { + "arguments": [ + { + "id": 1249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2306:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1248, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1547, + "src": "2297:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2297:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2281:33:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "2332:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:6", + "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": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:6", + "typeDescriptions": {} + } + }, + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2332:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2353:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + }, + "value": "ERC721: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + } + ], + "id": 1252, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2324:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2324:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "2324:56:6" + }, + { + "expression": { + "id": 1262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "2397:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1245, + "id": 1263, + "nodeType": "Return", + "src": "2390:12:6" + } + ] + }, + "documentation": { + "id": 1238, + "nodeType": "StructuredDocumentation", + "src": "2139:46:6", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 1265, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "2199:7:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1242, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2244:8:6" + }, + "parameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2215:7:6", + "nodeType": "VariableDeclaration", + "scope": 1265, + "src": "2207:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2207:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2206:17:6" + }, + "returnParameters": { + "id": 1245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1244, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1265, + "src": "2262:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2262:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2261:9:6" + }, + "scope": 2046, + "src": "2190:219:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2192 + ], + "body": { + "id": 1274, + "nodeType": "Block", + "src": "2540:29:6", + "statements": [ + { + "expression": { + "id": 1272, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "2557:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 1271, + "id": 1273, + "nodeType": "Return", + "src": "2550:12:6" + } + ] + }, + "documentation": { + "id": 1266, + "nodeType": "StructuredDocumentation", + "src": "2415:51:6", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 1275, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2480:4:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1268, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2507:8:6" + }, + "parameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [], + "src": "2484:2:6" + }, + "returnParameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1275, + "src": "2525:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1269, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2525:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2524:15:6" + }, + "scope": 2046, + "src": "2471:98:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2198 + ], + "body": { + "id": 1284, + "nodeType": "Block", + "src": "2704:31:6", + "statements": [ + { + "expression": { + "id": 1282, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "2721:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 1281, + "id": 1283, + "nodeType": "Return", + "src": "2714:14:6" + } + ] + }, + "documentation": { + "id": 1276, + "nodeType": "StructuredDocumentation", + "src": "2575:53:6", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 1285, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2642:6:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1278, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2671:8:6" + }, + "parameters": { + "id": 1277, + "nodeType": "ParameterList", + "parameters": [], + "src": "2648:2:6" + }, + "returnParameters": { + "id": 1281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1285, + "src": "2689:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1279, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2689:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2688:15:6" + }, + "scope": 2046, + "src": "2633:102:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2206 + ], + "body": { + "id": 1323, + "nodeType": "Block", + "src": "2889:188:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "2914:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1294, + "name": "_requireMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "2899:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2899:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1297, + "nodeType": "ExpressionStatement", + "src": "2899:23:6" + }, + { + "assignments": [ + 1299 + ], + "declarations": [ + { + "constant": false, + "id": 1299, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2947:7:6", + "nodeType": "VariableDeclaration", + "scope": 1323, + "src": "2933:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1298, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2933:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1302, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1300, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "2957:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2957:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2933:34:6" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1305, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "2990:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2984:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2984:5:6", + "typeDescriptions": {} + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2984:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2999:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2984:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3008:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2984:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 1320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3068:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2984:86:6", + "trueExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1314, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "3036:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1315, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "3045:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3053:8:6", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2691, + "src": "3045:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3045:18:6", + "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": 1312, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3019:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3023:12:6", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "3019:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3019:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1310, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3012:6:6", + "typeDescriptions": {} + } + }, + "id": 1319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1293, + "id": 1322, + "nodeType": "Return", + "src": "2977:93:6" + } + ] + }, + "documentation": { + "id": 1286, + "nodeType": "StructuredDocumentation", + "src": "2741:55:6", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 1324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2810:8:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1290, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2856:8:6" + }, + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2827:7:6", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "2819:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2819:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2818:17:6" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "2874:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1291, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2874:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2873:15:6" + }, + "scope": 2046, + "src": "2801:276:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1332, + "nodeType": "Block", + "src": "3385:26:6", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3402:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 1329, + "id": 1331, + "nodeType": "Return", + "src": "3395:9:6" + } + ] + }, + "documentation": { + "id": 1325, + "nodeType": "StructuredDocumentation", + "src": "3083:231:6", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 1333, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "3328:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1326, + "nodeType": "ParameterList", + "parameters": [], + "src": "3336:2:6" + }, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1328, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "3370:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1327, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3370:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3369:15:6" + }, + "scope": 2046, + "src": "3319:92:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2135 + ], + "body": { + "id": 1375, + "nodeType": "Block", + "src": "3538:336:6", + "statements": [ + { + "assignments": [ + 1343 + ], + "declarations": [ + { + "constant": false, + "id": 1343, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3556:5:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "3548:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3548:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1348, + "initialValue": { + "arguments": [ + { + "id": 1346, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "3579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1344, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "3564:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3571:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "3564:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3564:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3548:39:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1350, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1336, + "src": "3605:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1351, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3611:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3605:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 1349, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3597:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3597:57:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1355, + "nodeType": "ExpressionStatement", + "src": "3597:57:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1357, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3686:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3686:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1359, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3702:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3686:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1362, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3728:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1363, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3735:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3735:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1361, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "3711:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3711:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3686:62:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3762:63:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" + }, + "value": "ERC721: approve caller is not token owner or approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" + } + ], + "id": 1356, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3665:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3665:170:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "3665:170:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1371, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1336, + "src": "3855:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1372, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "3859:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1370, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1896, + "src": "3846:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3846:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "ExpressionStatement", + "src": "3846:21:6" + } + ] + }, + "documentation": { + "id": 1334, + "nodeType": "StructuredDocumentation", + "src": "3417:46:6", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 1376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "3477:7:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1340, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3529:8:6" + }, + "parameters": { + "id": 1339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1336, + "mutability": "mutable", + "name": "to", + "nameLocation": "3493:2:6", + "nodeType": "VariableDeclaration", + "scope": 1376, + "src": "3485:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3485:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1338, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3505:7:6", + "nodeType": "VariableDeclaration", + "scope": 1376, + "src": "3497:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3497:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3484:29:6" + }, + "returnParameters": { + "id": 1341, + "nodeType": "ParameterList", + "parameters": [], + "src": "3538:0:6" + }, + "scope": 2046, + "src": "3468:406:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2151 + ], + "body": { + "id": 1393, + "nodeType": "Block", + "src": "4020:82:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1386, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "4045:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1385, + "name": "_requireMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "4030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 1387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4030:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1388, + "nodeType": "ExpressionStatement", + "src": "4030:23:6" + }, + { + "expression": { + "baseExpression": { + "id": 1389, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "4071:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1391, + "indexExpression": { + "id": 1390, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "4087:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4071:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1384, + "id": 1392, + "nodeType": "Return", + "src": "4064:31:6" + } + ] + }, + "documentation": { + "id": 1377, + "nodeType": "StructuredDocumentation", + "src": "3880:50:6", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 1394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "3944:11:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1381, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3993:8:6" + }, + "parameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1379, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3964:7:6", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "3956:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3956:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3955:17:6" + }, + "returnParameters": { + "id": 1384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1383, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "4011:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4011:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4010:9:6" + }, + "scope": 2046, + "src": "3935:167:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2143 + ], + "body": { + "id": 1410, + "nodeType": "Block", + "src": "4253:69:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1404, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4282:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4282:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "4296:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1407, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1399, + "src": "4306:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1403, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "4263:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_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": "4263:52:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1409, + "nodeType": "ExpressionStatement", + "src": "4263:52:6" + } + ] + }, + "documentation": { + "id": 1395, + "nodeType": "StructuredDocumentation", + "src": "4108:56:6", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 1411, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4178:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1401, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4244:8:6" + }, + "parameters": { + "id": 1400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4204:8:6", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "4196:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4196:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1399, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4219:8:6", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "4214:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4214:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4195:33:6" + }, + "returnParameters": { + "id": 1402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4253:0:6" + }, + "scope": 2046, + "src": "4169:153:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2161 + ], + "body": { + "id": 1428, + "nodeType": "Block", + "src": "4491:59:6", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1422, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "4508:18:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1424, + "indexExpression": { + "id": 1423, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "4527:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4508:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1426, + "indexExpression": { + "id": 1425, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1416, + "src": "4534:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4508:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1421, + "id": 1427, + "nodeType": "Return", + "src": "4501:42:6" + } + ] + }, + "documentation": { + "id": 1412, + "nodeType": "StructuredDocumentation", + "src": "4328:55:6", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4397:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1418, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4467:8:6" + }, + "parameters": { + "id": 1417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1414, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4422:5:6", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4414:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4414:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1416, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4437:8:6", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4429:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4429:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4413:33:6" + }, + "returnParameters": { + "id": 1421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4485:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1419, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4485:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4484:6:6" + }, + "scope": 2046, + "src": "4388:162:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2127 + ], + "body": { + "id": 1455, + "nodeType": "Block", + "src": "4731:207:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1442, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4820:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4820:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1444, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4834:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1441, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "4801:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4801:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4844:47:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + }, + "value": "ERC721: caller is not token owner or approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + } + ], + "id": 1440, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4793:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4793:99:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1448, + "nodeType": "ExpressionStatement", + "src": "4793:99:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1450, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1432, + "src": "4913:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1451, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "4919:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1452, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4923:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1449, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "4903:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4903:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1454, + "nodeType": "ExpressionStatement", + "src": "4903:28:6" + } + ] + }, + "documentation": { + "id": 1430, + "nodeType": "StructuredDocumentation", + "src": "4556:51:6", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 1456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4621:12:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1438, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4722:8:6" + }, + "parameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1432, + "mutability": "mutable", + "name": "from", + "nameLocation": "4651:4:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4643:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4643:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1434, + "mutability": "mutable", + "name": "to", + "nameLocation": "4673:2:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4665:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4665:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4693:7:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4685:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4685:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4633:73:6" + }, + "returnParameters": { + "id": 1439, + "nodeType": "ParameterList", + "parameters": [], + "src": "4731:0:6" + }, + "scope": 2046, + "src": "4612:326:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2117 + ], + "body": { + "id": 1474, + "nodeType": "Block", + "src": "5127:56:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1468, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "5154:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1469, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "5160:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1470, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "5164:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5173:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1467, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1475, + 1505 + ], + "referencedDeclaration": 1505, + "src": "5137:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5137:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1473, + "nodeType": "ExpressionStatement", + "src": "5137:39:6" + } + ] + }, + "documentation": { + "id": 1457, + "nodeType": "StructuredDocumentation", + "src": "4944:55:6", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 1475, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "5013:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1465, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5118:8:6" + }, + "parameters": { + "id": 1464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "from", + "nameLocation": "5047:4:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5039:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5039:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "to", + "nameLocation": "5069:2:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5061:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5061:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5089:7:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5081:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5081:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5029:73:6" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [], + "src": "5127:0:6" + }, + "scope": 2046, + "src": "5004:179:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2107 + ], + "body": { + "id": 1504, + "nodeType": "Block", + "src": "5399:164:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1490, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5436:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5436:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1492, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "5450:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1489, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "5417:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5417:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5460:47:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + }, + "value": "ERC721: caller is not token owner or approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + } + ], + "id": 1488, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5409:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5409:99:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1496, + "nodeType": "ExpressionStatement", + "src": "5409:99:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1498, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "5532:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1499, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "5538:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1500, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "5542:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1501, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "5551:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1497, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1534, + "src": "5518:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5518:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1503, + "nodeType": "ExpressionStatement", + "src": "5518:38:6" + } + ] + }, + "documentation": { + "id": 1476, + "nodeType": "StructuredDocumentation", + "src": "5189:55:6", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 1505, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "5258:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1486, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5390:8:6" + }, + "parameters": { + "id": 1485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1478, + "mutability": "mutable", + "name": "from", + "nameLocation": "5292:4:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5284:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5284:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1480, + "mutability": "mutable", + "name": "to", + "nameLocation": "5314:2:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5306:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5306:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1482, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5334:7:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5326:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5326:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "data", + "nameLocation": "5364:4:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5351:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1483, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5351:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5274:100:6" + }, + "returnParameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [], + "src": "5399:0:6" + }, + "scope": 2046, + "src": "5249:314:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6564:165:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1518, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "6584:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1519, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1510, + "src": "6590:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1520, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "6594:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1517, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "6574:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6574:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1522, + "nodeType": "ExpressionStatement", + "src": "6574:28:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1525, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "6643:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1526, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1510, + "src": "6649:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1527, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "6653:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1514, + "src": "6662:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1524, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "6620:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 1529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6620:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6669:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1523, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6612:110:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6612:110:6" + } + ] + }, + "documentation": { + "id": 1506, + "nodeType": "StructuredDocumentation", + "src": "5569:850:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1534, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "6433:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "from", + "nameLocation": "6464:4:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6456:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6456:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1510, + "mutability": "mutable", + "name": "to", + "nameLocation": "6486:2:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6478:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6478:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6506:7:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6498:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6498:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1514, + "mutability": "mutable", + "name": "data", + "nameLocation": "6536:4:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6523:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1513, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6523:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6446:100:6" + }, + "returnParameters": { + "id": 1516, + "nodeType": "ParameterList", + "parameters": [], + "src": "6564:0:6" + }, + "scope": 2046, + "src": "6424:305:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1546, + "nodeType": "Block", + "src": "6913:40:6", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1542, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "6930:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1544, + "indexExpression": { + "id": 1543, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1537, + "src": "6938:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6930:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1541, + "id": 1545, + "nodeType": "Return", + "src": "6923:23:6" + } + ] + }, + "documentation": { + "id": 1535, + "nodeType": "StructuredDocumentation", + "src": "6735:98:6", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist" + }, + "id": 1547, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "6847:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1537, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6864:7:6", + "nodeType": "VariableDeclaration", + "scope": 1547, + "src": "6856:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6856:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6855:17:6" + }, + "returnParameters": { + "id": 1541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1540, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1547, + "src": "6904:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6904:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6903:9:6" + }, + "scope": 2046, + "src": "6838:115:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1564, + "nodeType": "Block", + "src": "7327:55:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1556, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "7353:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1555, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1547, + "src": "7344:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7344:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7373:1:6", + "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": 1559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7365:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7365:7:6", + "typeDescriptions": {} + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7365:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7344:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1554, + "id": 1563, + "nodeType": "Return", + "src": "7337:38:6" + } + ] + }, + "documentation": { + "id": 1548, + "nodeType": "StructuredDocumentation", + "src": "6959:292:6", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 1565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nameLocation": "7265:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1550, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7281:7:6", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "7273:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7273:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7272:17:6" + }, + "returnParameters": { + "id": 1554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "7321:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7321:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7320:6:6" + }, + "scope": 2046, + "src": "7256:126:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "7639:162:6", + "statements": [ + { + "assignments": [ + 1576 + ], + "declarations": [ + { + "constant": false, + "id": 1576, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7657:5:6", + "nodeType": "VariableDeclaration", + "scope": 1598, + "src": "7649:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7649:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1581, + "initialValue": { + "arguments": [ + { + "id": 1579, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "7680:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1577, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "7665:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7672:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "7665:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7665:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7649:39:6" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1582, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7706:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1583, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1576, + "src": "7717:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7706:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1586, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1576, + "src": "7743:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1587, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7750:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1585, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7726:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7726:32:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7706:52:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1591, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "7774:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1590, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "7762:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7762:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1593, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7786:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7762:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7706:87:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1596, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7705:89:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1574, + "id": 1597, + "nodeType": "Return", + "src": "7698:96:6" + } + ] + }, + "documentation": { + "id": 1566, + "nodeType": "StructuredDocumentation", + "src": "7388:147:6", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 1599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nameLocation": "7549:18:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1568, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7576:7:6", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7568:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7568:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1570, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7593:7:6", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7585:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7585:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7567:34:6" + }, + "returnParameters": { + "id": 1574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7633:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1572, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7633:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7632:6:6" + }, + "scope": 2046, + "src": "7540:261:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1613, + "nodeType": "Block", + "src": "8196:43:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1608, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "8216:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1609, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "8220:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8229:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1607, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1614, + 1643 + ], + "referencedDeclaration": 1643, + "src": "8206:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8206:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "8206:26:6" + } + ] + }, + "documentation": { + "id": 1600, + "nodeType": "StructuredDocumentation", + "src": "7807:319:6", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1614, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "8140:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1602, + "mutability": "mutable", + "name": "to", + "nameLocation": "8158:2:6", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "8150:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8150:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1604, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8170:7:6", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "8162:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8162:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8149:29:6" + }, + "returnParameters": { + "id": 1606, + "nodeType": "ParameterList", + "parameters": [], + "src": "8196:0:6" + }, + "scope": 2046, + "src": "8131:108:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1642, + "nodeType": "Block", + "src": "8574:195:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1625, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "8590:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1626, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "8594:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1624, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "8584:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8584:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1628, + "nodeType": "ExpressionStatement", + "src": "8584:18:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8664:1:6", + "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": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8656:7:6", + "typeDescriptions": {} + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8656:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1635, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "8668:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1636, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "8672:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1637, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "8681:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1630, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "8633:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8633:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8700:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8612:150:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1641, + "nodeType": "ExpressionStatement", + "src": "8612:150:6" + } + ] + }, + "documentation": { + "id": 1615, + "nodeType": "StructuredDocumentation", + "src": "8245:210:6", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1643, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "8469:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1617, + "mutability": "mutable", + "name": "to", + "nameLocation": "8496:2:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8488:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8488:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8516:7:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8508:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8508:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "data", + "nameLocation": "8546:4:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8533:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1620, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8533:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8478:78:6" + }, + "returnParameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "8574:0:6" + }, + "scope": 2046, + "src": "8460:309:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1719, + "nodeType": "Block", + "src": "9152:859:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1652, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9170:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9184:1:6", + "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": 1654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9176:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9176:7:6", + "typeDescriptions": {} + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9176:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9170:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9188:34:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 1651, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9162:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9162:61:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1660, + "nodeType": "ExpressionStatement", + "src": "9162:61:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9241:17:6", + "subExpression": { + "arguments": [ + { + "id": 1663, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9250:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1662, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "9242:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9242:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9260:30:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 1661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9233:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9233:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1668, + "nodeType": "ExpressionStatement", + "src": "9233:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9331:1:6", + "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": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9323:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9323:7:6", + "typeDescriptions": {} + } + }, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9323:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1674, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9335:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1675, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9339:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9348:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1669, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "9302:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9302:48:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1678, + "nodeType": "ExpressionStatement", + "src": "9302:48:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9445:17:6", + "subExpression": { + "arguments": [ + { + "id": 1681, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9454:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1680, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "9446:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9446:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9464:30:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 1679, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9437:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9437:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1686, + "nodeType": "ExpressionStatement", + "src": "9437:58:6" + }, + { + "id": 1693, + "nodeType": "UncheckedBlock", + "src": "9506:360:6", + "statements": [ + { + "expression": { + "id": 1691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1687, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "9837:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1689, + "indexExpression": { + "id": 1688, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9847:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9837:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9854:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9837:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1692, + "nodeType": "ExpressionStatement", + "src": "9837:18:6" + } + ] + }, + { + "expression": { + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1694, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "9876:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1696, + "indexExpression": { + "id": 1695, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9884:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9876:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1697, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9895:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1699, + "nodeType": "ExpressionStatement", + "src": "9876:21:6" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:6", + "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": 1702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1701, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:6", + "typeDescriptions": {} + } + }, + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1705, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9934:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1706, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9938:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1700, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "9913:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9913:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1708, + "nodeType": "EmitStatement", + "src": "9908:38:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9985:1:6", + "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": 1711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9977:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9977:7:6", + "typeDescriptions": {} + } + }, + "id": 1713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9977:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1714, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9989:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1715, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9993:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10002:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1709, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "9957:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9957:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1718, + "nodeType": "ExpressionStatement", + "src": "9957:47:6" + } + ] + }, + "documentation": { + "id": 1644, + "nodeType": "StructuredDocumentation", + "src": "8775:311:6", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 1720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "9100:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "to", + "nameLocation": "9114:2:6", + "nodeType": "VariableDeclaration", + "scope": 1720, + "src": "9106:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9106:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1648, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "9126:7:6", + "nodeType": "VariableDeclaration", + "scope": 1720, + "src": "9118:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9118:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9105:29:6" + }, + "returnParameters": { + "id": 1650, + "nodeType": "ParameterList", + "parameters": [], + "src": "9152:0:6" + }, + "scope": 2046, + "src": "9091:920:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1786, + "nodeType": "Block", + "src": "10386:713:6", + "statements": [ + { + "assignments": [ + 1727 + ], + "declarations": [ + { + "constant": false, + "id": 1727, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10404:5:6", + "nodeType": "VariableDeclaration", + "scope": 1786, + "src": "10396:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10396:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1732, + "initialValue": { + "arguments": [ + { + "id": 1730, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10427:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1728, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "10412:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10419:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "10412:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10412:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10396:39:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1734, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10467:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10482:1:6", + "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": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10474:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10474:7:6", + "typeDescriptions": {} + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10474:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1739, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10486:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10495:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1733, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "10446:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10446:51:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1742, + "nodeType": "ExpressionStatement", + "src": "10446:51:6" + }, + { + "expression": { + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1743, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10599:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1746, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10622:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1744, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "10607:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10614:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "10607:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10607:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10599:31:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1749, + "nodeType": "ExpressionStatement", + "src": "10599:31:6" + }, + { + "expression": { + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10668:31:6", + "subExpression": { + "baseExpression": { + "id": 1750, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "10675:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1752, + "indexExpression": { + "id": 1751, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10691:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10675:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "10668:31:6" + }, + { + "id": 1761, + "nodeType": "UncheckedBlock", + "src": "10710:237:6", + "statements": [ + { + "expression": { + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1755, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "10915:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1757, + "indexExpression": { + "id": 1756, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10925:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10915:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 1758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10935:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10915:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1760, + "nodeType": "ExpressionStatement", + "src": "10915:21:6" + } + ] + }, + { + "expression": { + "id": 1765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10956:23:6", + "subExpression": { + "baseExpression": { + "id": 1762, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "10963:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1764, + "indexExpression": { + "id": 1763, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10971:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10963:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1766, + "nodeType": "ExpressionStatement", + "src": "10956:23:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1768, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "11004:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11019:1:6", + "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": 1770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11011:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11011:7:6", + "typeDescriptions": {} + } + }, + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11011:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1773, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "11023:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1767, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "10995:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10995:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1775, + "nodeType": "EmitStatement", + "src": "10990:41:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1777, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "11062:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11077:1:6", + "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": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11069:7:6", + "typeDescriptions": {} + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11069:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1782, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "11081:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11090:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1776, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "11042:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11042:50:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1785, + "nodeType": "ExpressionStatement", + "src": "11042:50:6" + } + ] + }, + "documentation": { + "id": 1721, + "nodeType": "StructuredDocumentation", + "src": "10017:315:6", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "10346:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10360:7:6", + "nodeType": "VariableDeclaration", + "scope": 1787, + "src": "10352:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10352:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10351:17:6" + }, + "returnParameters": { + "id": 1725, + "nodeType": "ParameterList", + "parameters": [], + "src": "10386:0:6" + }, + "scope": 2046, + "src": "10337:762:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1871, + "nodeType": "Block", + "src": "11532:1124:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1800, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11565:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1798, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "11550:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11557:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "11550:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11550:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1802, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11577:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11550:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11583:39:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + }, + "value": "ERC721: transfer from incorrect owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + } + ], + "id": 1797, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11542:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11542:81:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1806, + "nodeType": "ExpressionStatement", + "src": "11542:81:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1808, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "11641:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11655:1:6", + "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": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11647:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11647:7:6", + "typeDescriptions": {} + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11647:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11641:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11659:38:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 1807, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11633:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11633:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1816, + "nodeType": "ExpressionStatement", + "src": "11633:65:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1818, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11730:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1819, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "11736:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1820, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11740:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11749:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1817, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "11709:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11709:42:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1823, + "nodeType": "ExpressionStatement", + "src": "11709:42:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1827, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11866:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1825, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "11851:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11858:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "11851:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11851:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1829, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11878:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11851:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:39:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + }, + "value": "ERC721: transfer from incorrect owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + } + ], + "id": 1824, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11843:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11843:81:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "11843:81:6" + }, + { + "expression": { + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "11986:31:6", + "subExpression": { + "baseExpression": { + "id": 1834, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "11993:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12009:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11993:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1838, + "nodeType": "ExpressionStatement", + "src": "11986:31:6" + }, + { + "id": 1851, + "nodeType": "UncheckedBlock", + "src": "12028:496:6", + "statements": [ + { + "expression": { + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1839, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "12461:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1841, + "indexExpression": { + "id": 1840, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12471:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12461:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12480:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12461:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1844, + "nodeType": "ExpressionStatement", + "src": "12461:20:6" + }, + { + "expression": { + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1845, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "12495:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "id": 1846, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12505:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12495:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12512:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12495:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "12495:18:6" + } + ] + }, + { + "expression": { + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1852, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "12533:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1854, + "indexExpression": { + "id": 1853, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12541:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12533:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1855, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12552:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12533:21:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1857, + "nodeType": "ExpressionStatement", + "src": "12533:21:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1859, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12579:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1860, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12585:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1861, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12589:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1858, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "12570:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12570:27:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1863, + "nodeType": "EmitStatement", + "src": "12565:32:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1865, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12628:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12634:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1867, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12638:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12647:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1864, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "12608:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12608:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1870, + "nodeType": "ExpressionStatement", + "src": "12608:41:6" + } + ] + }, + "documentation": { + "id": 1788, + "nodeType": "StructuredDocumentation", + "src": "11105:313:6", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1872, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "11432:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1790, + "mutability": "mutable", + "name": "from", + "nameLocation": "11459:4:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11451:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11451:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1792, + "mutability": "mutable", + "name": "to", + "nameLocation": "11481:2:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11473:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1791, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11473:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1794, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11501:7:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11493:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1793, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11493:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11441:73:6" + }, + "returnParameters": { + "id": 1796, + "nodeType": "ParameterList", + "parameters": [], + "src": "11532:0:6" + }, + "scope": 2046, + "src": "11423:1233:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1895, + "nodeType": "Block", + "src": "12832:107:6", + "statements": [ + { + "expression": { + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1880, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "12842:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1882, + "indexExpression": { + "id": 1881, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12858:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12842:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1883, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "12869:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12842:29:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1885, + "nodeType": "ExpressionStatement", + "src": "12842:29:6" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 1889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12910:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1887, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "12895:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12902:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "12895:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12895:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1891, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "12920:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12924:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1886, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2070, + "src": "12886:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12886:46:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1894, + "nodeType": "EmitStatement", + "src": "12881:51:6" + } + ] + }, + "documentation": { + "id": 1873, + "nodeType": "StructuredDocumentation", + "src": "12662:101:6", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 1896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "12777:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "to", + "nameLocation": "12794:2:6", + "nodeType": "VariableDeclaration", + "scope": 1896, + "src": "12786:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12786:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12806:7:6", + "nodeType": "VariableDeclaration", + "scope": 1896, + "src": "12798:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12785:29:6" + }, + "returnParameters": { + "id": 1879, + "nodeType": "ParameterList", + "parameters": [], + "src": "12832:0:6" + }, + "scope": 2046, + "src": "12768:171:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1927, + "nodeType": "Block", + "src": "13198:184:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13216:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1908, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13225:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13216:17:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13235:27:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13208:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13208:55:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1912, + "nodeType": "ExpressionStatement", + "src": "13208:55:6" + }, + { + "expression": { + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1913, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "13273:18:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1916, + "indexExpression": { + "id": 1914, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13292:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13273:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1917, + "indexExpression": { + "id": 1915, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13299:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13273:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1918, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "13311:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13273:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1920, + "nodeType": "ExpressionStatement", + "src": "13273:46:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1922, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13349:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1923, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13356:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1924, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "13366:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1921, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "13334:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13334:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1926, + "nodeType": "EmitStatement", + "src": "13329:46:6" + } + ] + }, + "documentation": { + "id": 1897, + "nodeType": "StructuredDocumentation", + "src": "12945:125:6", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event." + }, + "id": 1928, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "13084:18:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1899, + "mutability": "mutable", + "name": "owner", + "nameLocation": "13120:5:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13112:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13112:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13143:8:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13135:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13135:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "approved", + "nameLocation": "13166:8:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13161:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1902, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13161:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13102:78:6" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "13198:0:6" + }, + "scope": 2046, + "src": "13075:307:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1941, + "nodeType": "Block", + "src": "13529:70:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1936, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1931, + "src": "13555:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1935, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "13547:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13547:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13565:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + }, + "value": "ERC721: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + } + ], + "id": 1934, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13539:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1940, + "nodeType": "ExpressionStatement", + "src": "13539:53:6" + } + ] + }, + "documentation": { + "id": 1929, + "nodeType": "StructuredDocumentation", + "src": "13388:73:6", + "text": " @dev Reverts if the `tokenId` has not been minted yet." + }, + "id": 1942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireMinted", + "nameLocation": "13475:14:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13498:7:6", + "nodeType": "VariableDeclaration", + "scope": 1942, + "src": "13490:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13490:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13489:17:6" + }, + "returnParameters": { + "id": 1933, + "nodeType": "ParameterList", + "parameters": [], + "src": "13529:0:6" + }, + "scope": 2046, + "src": "13466:133:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2003, + "nodeType": "Block", + "src": "14306:676:6", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1956, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14320:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14323:10:6", + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 2225, + "src": "14320:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14320:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2001, + "nodeType": "Block", + "src": "14940:36:6", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14961:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1955, + "id": 2000, + "nodeType": "Return", + "src": "14954:11:6" + } + ] + }, + "id": 2002, + "nodeType": "IfStatement", + "src": "14316:660:6", + "trueBody": { + "id": 1998, + "nodeType": "Block", + "src": "14337:597:6", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1978, + "nodeType": "Block", + "src": "14451:91:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1972, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1970, + "src": "14476:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 1973, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "14486:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2180_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14502:16:6", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 2179, + "src": "14486:32:6", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14519:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "14486:41:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "14476:51:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1955, + "id": 1977, + "nodeType": "Return", + "src": "14469:58:6" + } + ] + }, + "errorName": "", + "id": 1979, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1970, + "mutability": "mutable", + "name": "retval", + "nameLocation": "14443:6:6", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "14436:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1969, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "14436:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "14435:15:6" + }, + "src": "14427:115:6" + }, + { + "block": { + "id": 1995, + "nodeType": "Block", + "src": "14571:353:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1983, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "14593:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14600:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14593:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14610:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14593:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1993, + "nodeType": "Block", + "src": "14720:190:6", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "14806:86:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:2:6", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nodeType": "YulIdentifier", + "src": "14847:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14839:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14839:15:6" + }, + { + "arguments": [ + { + "name": "reason", + "nodeType": "YulIdentifier", + "src": "14862:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "14856:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "14856:13:6" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14832:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14832:38:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14832:38:6" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1981, + "isOffset": false, + "isSlot": false, + "src": "14847:6:6", + "valueSize": 1 + }, + { + "declaration": 1981, + "isOffset": false, + "isSlot": false, + "src": "14862:6:6", + "valueSize": 1 + } + ], + "id": 1992, + "nodeType": "InlineAssembly", + "src": "14797:95:6" + } + ] + }, + "id": 1994, + "nodeType": "IfStatement", + "src": "14589:321:6", + "trueBody": { + "id": 1991, + "nodeType": "Block", + "src": "14613:101:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14642:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1987, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "14635:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14635:60:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1990, + "nodeType": "ExpressionStatement", + "src": "14635:60:6" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1996, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "reason", + "nameLocation": "14563:6:6", + "nodeType": "VariableDeclaration", + "scope": 1996, + "src": "14550:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1980, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14550:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14549:21:6" + }, + "src": "14543:381:6" + } + ], + "externalCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1963, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "14392:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14392:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1965, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1945, + "src": "14406:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1966, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "14412:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1967, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "14421:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1960, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14371:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1959, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "14355:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2180_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14355:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$2180", + "typeString": "contract IERC721Receiver" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14375:16:6", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 2179, + "src": "14355:36:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14355:71:6", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1997, + "nodeType": "TryStatement", + "src": "14351:573:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1943, + "nodeType": "StructuredDocumentation", + "src": "13605:541:6", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 2004, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nameLocation": "14160:22:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "from", + "nameLocation": "14200:4:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14192:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14192:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1947, + "mutability": "mutable", + "name": "to", + "nameLocation": "14222:2:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14214:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1946, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14214:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14242:7:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14234:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14234:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "mutability": "mutable", + "name": "data", + "nameLocation": "14272:4:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14259:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1950, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14259:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14182:100:6" + }, + "returnParameters": { + "id": 1955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14300:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1953, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14300:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14299:6:6" + }, + "scope": 2046, + "src": "14151:831:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2016, + "nodeType": "Block", + "src": "15850:2:6", + "statements": [] + }, + "documentation": { + "id": 2005, + "nodeType": "StructuredDocumentation", + "src": "14988:705:6", + "text": " @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 2017, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "15707:20:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "from", + "nameLocation": "15745:4:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15737:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15737:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "to", + "nameLocation": "15767:2:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15759:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2008, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15759:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2011, + "mutability": "mutable", + "name": "firstTokenId", + "nameLocation": "15787:12:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15779:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15779:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2013, + "mutability": "mutable", + "name": "batchSize", + "nameLocation": "15817:9:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15809:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15809:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15727:105:6" + }, + "returnParameters": { + "id": 2015, + "nodeType": "ParameterList", + "parameters": [], + "src": "15850:0:6" + }, + "scope": 2046, + "src": "15698:154:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2029, + "nodeType": "Block", + "src": "16709:2:6", + "statements": [] + }, + "documentation": { + "id": 2018, + "nodeType": "StructuredDocumentation", + "src": "15858:695:6", + "text": " @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 2030, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterTokenTransfer", + "nameLocation": "16567:19:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2020, + "mutability": "mutable", + "name": "from", + "nameLocation": "16604:4:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16596:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2019, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16596:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2022, + "mutability": "mutable", + "name": "to", + "nameLocation": "16626:2:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16618:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16618:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2024, + "mutability": "mutable", + "name": "firstTokenId", + "nameLocation": "16646:12:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16638:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16638:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2026, + "mutability": "mutable", + "name": "batchSize", + "nameLocation": "16676:9:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16668:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16668:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16586:105:6" + }, + "returnParameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [], + "src": "16709:0:6" + }, + "scope": 2046, + "src": "16558:153:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2044, + "nodeType": "Block", + "src": "17260:45:6", + "statements": [ + { + "expression": { + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2038, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "17270:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2040, + "indexExpression": { + "id": 2039, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "17280:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17270:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 2041, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "17292:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17270:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2043, + "nodeType": "ExpressionStatement", + "src": "17270:28:6" + } + ] + }, + "documentation": { + "id": 2031, + "nodeType": "StructuredDocumentation", + "src": "16717:409:6", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n that `ownerOf(tokenId)` is `a`." + }, + "id": 2045, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__unsafe_increaseBalance", + "nameLocation": "17193:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "account", + "nameLocation": "17226:7:6", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "17218:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17218:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2035, + "mutability": "mutable", + "name": "amount", + "nameLocation": "17243:6:6", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "17235:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17235:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17217:33:6" + }, + "returnParameters": { + "id": 2037, + "nodeType": "ParameterList", + "parameters": [], + "src": "17260:0:6" + }, + "scope": 2046, + "src": "17184:121:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2047, + "src": "628:16679:6", + "usedErrors": [] + } + ], + "src": "107:17201:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ] + }, + "id": 2163, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2048, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "108:23:7" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 2049, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2163, + "sourceUnit": 2845, + "src": "133:47:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2051, + "name": "IERC165", + "nameLocations": [ + "271:7:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "271:7:7" + }, + "id": 2052, + "nodeType": "InheritanceSpecifier", + "src": "271:7:7" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2050, + "nodeType": "StructuredDocumentation", + "src": "182:67:7", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 2162, + "linearizedBaseContracts": [ + 2162, + 2844 + ], + "name": "IERC721", + "nameLocation": "260:7:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2053, + "nodeType": "StructuredDocumentation", + "src": "285:88:7", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 2061, + "name": "Transfer", + "nameLocation": "384:8:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2055, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "409:4:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "393:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "393:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2057, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "431:2:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "415:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2056, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "415:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2059, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "451:7:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "435:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "392:67:7" + }, + "src": "378:82:7" + }, + { + "anonymous": false, + "documentation": { + "id": 2062, + "nodeType": "StructuredDocumentation", + "src": "466:94:7", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 2070, + "name": "Approval", + "nameLocation": "571:8:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2064, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "596:5:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "580:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2063, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2066, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "619:8:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "603:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2068, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "645:7:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "629:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "629:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "579:74:7" + }, + "src": "565:89:7" + }, + { + "anonymous": false, + "documentation": { + "id": 2071, + "nodeType": "StructuredDocumentation", + "src": "660:117:7", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 2079, + "name": "ApprovalForAll", + "nameLocation": "788:14:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2073, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "819:5:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "803:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "803:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2075, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "842:8:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "826:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "826:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2077, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "857:8:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "852:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "852:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "802:64:7" + }, + "src": "782:85:7" + }, + { + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "873:76:7", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 2087, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "963:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "owner", + "nameLocation": "981:5:7", + "nodeType": "VariableDeclaration", + "scope": 2087, + "src": "973:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "973:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "972:15:7" + }, + "returnParameters": { + "id": 2086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2085, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1019:7:7", + "nodeType": "VariableDeclaration", + "scope": 2087, + "src": "1011:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1010:17:7" + }, + "scope": 2162, + "src": "954:74:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2088, + "nodeType": "StructuredDocumentation", + "src": "1034:131:7", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 2095, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1179:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2090, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1195:7:7", + "nodeType": "VariableDeclaration", + "scope": 2095, + "src": "1187:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1187:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1186:17:7" + }, + "returnParameters": { + "id": 2094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2093, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1235:5:7", + "nodeType": "VariableDeclaration", + "scope": 2095, + "src": "1227:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2092, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1227:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1226:15:7" + }, + "scope": 2162, + "src": "1170:72:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2096, + "nodeType": "StructuredDocumentation", + "src": "1248:556:7", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 2107, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1818:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2098, + "mutability": "mutable", + "name": "from", + "nameLocation": "1852:4:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1844:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1844:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "to", + "nameLocation": "1874:2:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1866:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1866:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2102, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1894:7:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1886:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2104, + "mutability": "mutable", + "name": "data", + "nameLocation": "1926:4:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1911:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2103, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1911:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1834:102:7" + }, + "returnParameters": { + "id": 2106, + "nodeType": "ParameterList", + "parameters": [], + "src": "1945:0:7" + }, + "scope": 2162, + "src": "1809:137:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2108, + "nodeType": "StructuredDocumentation", + "src": "1952:687:7", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 2117, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2653:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2110, + "mutability": "mutable", + "name": "from", + "nameLocation": "2687:4:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2679:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2679:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "to", + "nameLocation": "2709:2:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2701:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2701:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2729:7:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2721:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2721:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2669:73:7" + }, + "returnParameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [], + "src": "2751:0:7" + }, + "scope": 2162, + "src": "2644:108:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2118, + "nodeType": "StructuredDocumentation", + "src": "2758:732:7", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 2127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3504:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "from", + "nameLocation": "3534:4:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3526:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3526:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "mutability": "mutable", + "name": "to", + "nameLocation": "3556:2:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3548:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3548:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3576:7:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3568:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3568:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3516:73:7" + }, + "returnParameters": { + "id": 2126, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:0:7" + }, + "scope": 2162, + "src": "3495:104:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2128, + "nodeType": "StructuredDocumentation", + "src": "3605:452:7", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 2135, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4071:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "to", + "nameLocation": "4087:2:7", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "4079:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4079:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4099:7:7", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "4091:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4078:29:7" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:7" + }, + "scope": 2162, + "src": "4062:55:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2136, + "nodeType": "StructuredDocumentation", + "src": "4123:309:7", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 2143, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4446:17:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4472:8:7", + "nodeType": "VariableDeclaration", + "scope": 2143, + "src": "4464:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4464:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2140, + "mutability": "mutable", + "name": "_approved", + "nameLocation": "4487:9:7", + "nodeType": "VariableDeclaration", + "scope": 2143, + "src": "4482:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2139, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4482:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4463:34:7" + }, + "returnParameters": { + "id": 2142, + "nodeType": "ParameterList", + "parameters": [], + "src": "4506:0:7" + }, + "scope": 2162, + "src": "4437:70:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2144, + "nodeType": "StructuredDocumentation", + "src": "4513:139:7", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 2151, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4666:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2146, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4686:7:7", + "nodeType": "VariableDeclaration", + "scope": 2151, + "src": "4678:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4678:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4677:17:7" + }, + "returnParameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2149, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4726:8:7", + "nodeType": "VariableDeclaration", + "scope": 2151, + "src": "4718:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4718:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4717:18:7" + }, + "scope": 2162, + "src": "4657:79:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2152, + "nodeType": "StructuredDocumentation", + "src": "4742:138:7", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 2161, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4894:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4919:5:7", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4911:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4911:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2156, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4934:8:7", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4926:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4926:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4910:33:7" + }, + "returnParameters": { + "id": 2160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2159, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4967:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2158, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4967:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4966:6:7" + }, + "scope": 2162, + "src": "4885:88:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2163, + "src": "250:4725:7", + "usedErrors": [] + } + ], + "src": "108:4868:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 2180 + ] + }, + "id": 2181, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2164, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "116:23:8" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2165, + "nodeType": "StructuredDocumentation", + "src": "141:152:8", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 2180, + "linearizedBaseContracts": [ + 2180 + ], + "name": "IERC721Receiver", + "nameLocation": "304:15:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2166, + "nodeType": "StructuredDocumentation", + "src": "326:493:8", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 2179, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "833:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2168, + "mutability": "mutable", + "name": "operator", + "nameLocation": "867:8:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "859:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "859:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2170, + "mutability": "mutable", + "name": "from", + "nameLocation": "893:4:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "885:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2172, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "915:7:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "907:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "907:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2174, + "mutability": "mutable", + "name": "data", + "nameLocation": "947:4:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "932:19:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2173, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "932:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "849:108:8" + }, + "returnParameters": { + "id": 2178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2177, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "976:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2176, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "975:8:8" + }, + "scope": 2180, + "src": "824:160:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2181, + "src": "294:692:8", + "usedErrors": [] + } + ], + "src": "116:871:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ] + }, + "id": 2208, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2182, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "112:23:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 2183, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2208, + "sourceUnit": 2163, + "src": "137:24:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2185, + "name": "IERC721", + "nameLocations": [ + "326:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "326:7:9" + }, + "id": 2186, + "nodeType": "InheritanceSpecifier", + "src": "326:7:9" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "163:133:9", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 2207, + "linearizedBaseContracts": [ + 2207, + 2162, + 2844 + ], + "name": "IERC721Metadata", + "nameLocation": "307:15:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2187, + "nodeType": "StructuredDocumentation", + "src": "340:58:9", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 2192, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "412:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [], + "src": "416:2:9" + }, + "returnParameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2192, + "src": "442:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2189, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "442:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "441:15:9" + }, + "scope": 2207, + "src": "403:54:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2193, + "nodeType": "StructuredDocumentation", + "src": "463:60:9", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 2198, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "537:6:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2194, + "nodeType": "ParameterList", + "parameters": [], + "src": "543:2:9" + }, + "returnParameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2198, + "src": "569:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2195, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "568:15:9" + }, + "scope": 2207, + "src": "528:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2199, + "nodeType": "StructuredDocumentation", + "src": "590:90:9", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 2206, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "694:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "711:7:9", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "703:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "703:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "702:17:9" + }, + "returnParameters": { + "id": 2205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2204, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "743:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2203, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "743:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "742:15:9" + }, + "scope": 2207, + "src": "685:73:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2208, + "src": "297:463:9", + "usedErrors": [] + } + ], + "src": "112:649:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Address.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 2537 + ] + }, + "id": 2538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2209, + "literals": [ + "solidity", + "^", + "0.8", + ".1" + ], + "nodeType": "PragmaDirective", + "src": "101:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2210, + "nodeType": "StructuredDocumentation", + "src": "126:67:10", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 2537, + "linearizedBaseContracts": [ + 2537 + ], + "name": "Address", + "nameLocation": "202:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2224, + "nodeType": "Block", + "src": "1241:254:10", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2218, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2213, + "src": "1465:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1473:4:10", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "1465:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1478:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1465:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1487:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1465:23:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2217, + "id": 2223, + "nodeType": "Return", + "src": "1458:30:10" + } + ] + }, + "documentation": { + "id": 2211, + "nodeType": "StructuredDocumentation", + "src": "216:954:10", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" + }, + "id": 2225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nameLocation": "1184:10:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2213, + "mutability": "mutable", + "name": "account", + "nameLocation": "1203:7:10", + "nodeType": "VariableDeclaration", + "scope": 2225, + "src": "1195:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1195:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1194:17:10" + }, + "returnParameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2225, + "src": "1235:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2215, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1235:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1234:6:10" + }, + "scope": 2537, + "src": "1175:320:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2258, + "nodeType": "Block", + "src": "2483:241:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2236, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2509:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + ], + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2501:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2501:7:10", + "typeDescriptions": {} + } + }, + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2501:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2515:7:10", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2501:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2239, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "2526:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2501:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2534:31:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 2233, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2493:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2493:73:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2243, + "nodeType": "ExpressionStatement", + "src": "2493:73:10" + }, + { + "assignments": [ + 2245, + null + ], + "declarations": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "success", + "nameLocation": "2583:7:10", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "2578:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2578:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2252, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2626:2:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 2246, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "2596:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2606:4:10", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2596:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2248, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "2618:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2596:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2596:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2577:52:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2254, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "2647:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2656:60:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 2253, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2639:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:78:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2257, + "nodeType": "ExpressionStatement", + "src": "2639:78:10" + } + ] + }, + "documentation": { + "id": 2226, + "nodeType": "StructuredDocumentation", + "src": "1501:906:10", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 2259, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "2421:9:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2447:9:10", + "nodeType": "VariableDeclaration", + "scope": 2259, + "src": "2431:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2431:15:10", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2230, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2466:6:10", + "nodeType": "VariableDeclaration", + "scope": 2259, + "src": "2458:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2458:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2430:43:10" + }, + "returnParameters": { + "id": 2232, + "nodeType": "ParameterList", + "parameters": [], + "src": "2483:0:10" + }, + "scope": 2537, + "src": "2412:312:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2276, + "nodeType": "Block", + "src": "3555:96:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2270, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "3594:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2271, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2264, + "src": "3602:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3611:32:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 2269, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "3572:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3572:72:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2268, + "id": 2275, + "nodeType": "Return", + "src": "3565:79:10" + } + ] + }, + "documentation": { + "id": 2260, + "nodeType": "StructuredDocumentation", + "src": "2730:731:10", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 2277, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3475:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2262, + "mutability": "mutable", + "name": "target", + "nameLocation": "3496:6:10", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3488:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3488:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "data", + "nameLocation": "3517:4:10", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3504:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2263, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3504:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3487:35:10" + }, + "returnParameters": { + "id": 2268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3541:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2266, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3541:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3540:14:10" + }, + "scope": 2537, + "src": "3466:185:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "4020:76:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2290, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2280, + "src": "4059:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2291, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2282, + "src": "4067:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4073:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 2293, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2284, + "src": "4076:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2289, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "4037:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4037:52:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2288, + "id": 2295, + "nodeType": "Return", + "src": "4030:59:10" + } + ] + }, + "documentation": { + "id": 2278, + "nodeType": "StructuredDocumentation", + "src": "3657:211:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2297, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3882:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2280, + "mutability": "mutable", + "name": "target", + "nameLocation": "3912:6:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3904:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2279, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2282, + "mutability": "mutable", + "name": "data", + "nameLocation": "3941:4:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3928:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2281, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3928:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2284, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "3969:12:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3955:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2283, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3955:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3894:93:10" + }, + "returnParameters": { + "id": 2288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "4006:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2286, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4006:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4005:14:10" + }, + "scope": 2537, + "src": "3873:223:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2316, + "nodeType": "Block", + "src": "4601:111:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2310, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4640:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2311, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2302, + "src": "4648:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2312, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2304, + "src": "4654:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4661:43:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 2309, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "4618:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4618:87:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2308, + "id": 2315, + "nodeType": "Return", + "src": "4611:94:10" + } + ] + }, + "documentation": { + "id": 2298, + "nodeType": "StructuredDocumentation", + "src": "4102:351:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 2317, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4467:21:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2300, + "mutability": "mutable", + "name": "target", + "nameLocation": "4506:6:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4498:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4498:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2302, + "mutability": "mutable", + "name": "data", + "nameLocation": "4535:4:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4522:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2301, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4522:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2304, + "mutability": "mutable", + "name": "value", + "nameLocation": "4557:5:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4549:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4549:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4488:80:10" + }, + "returnParameters": { + "id": 2308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4587:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2306, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4587:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4586:14:10" + }, + "scope": 2537, + "src": "4458:254:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2360, + "nodeType": "Block", + "src": "5139:267:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2334, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5165:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + ], + "id": 2333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5157:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5157:7:10", + "typeDescriptions": {} + } + }, + "id": 2335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5157:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5171:7:10", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "5157:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "5182:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5157:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 2339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5189:40:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 2331, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5149:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5149:81:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2341, + "nodeType": "ExpressionStatement", + "src": "5149:81:10" + }, + { + "assignments": [ + 2343, + 2345 + ], + "declarations": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "success", + "nameLocation": "5246:7:10", + "nodeType": "VariableDeclaration", + "scope": 2360, + "src": "5241:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5241:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5268:10:10", + "nodeType": "VariableDeclaration", + "scope": 2360, + "src": "5255:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2344, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5255:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2352, + "initialValue": { + "arguments": [ + { + "id": 2350, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "5308:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2346, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2320, + "src": "5282:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5289:4:10", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5282:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2348, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "5301:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5282:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5282:31:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5240:73:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2354, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2320, + "src": "5357:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2355, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "5365:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2356, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "5374:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2357, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "5386:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2353, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "5330:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5330:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2330, + "id": 2359, + "nodeType": "Return", + "src": "5323:76:10" + } + ] + }, + "documentation": { + "id": 2318, + "nodeType": "StructuredDocumentation", + "src": "4718:237:10", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2361, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4969:21:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2320, + "mutability": "mutable", + "name": "target", + "nameLocation": "5008:6:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5000:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5000:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2322, + "mutability": "mutable", + "name": "data", + "nameLocation": "5037:4:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5024:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5024:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2324, + "mutability": "mutable", + "name": "value", + "nameLocation": "5059:5:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5051:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5051:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5088:12:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5074:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2325, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5074:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4990:116:10" + }, + "returnParameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5125:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2328, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5125:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5124:14:10" + }, + "scope": 2537, + "src": "4960:446:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2377, + "nodeType": "Block", + "src": "5683:97:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2372, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "5719:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2373, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2366, + "src": "5727:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5733:39:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 2371, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2378, + 2407 + ], + "referencedDeclaration": 2407, + "src": "5700:18:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5700:73:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2370, + "id": 2376, + "nodeType": "Return", + "src": "5693:80:10" + } + ] + }, + "documentation": { + "id": 2362, + "nodeType": "StructuredDocumentation", + "src": "5412:166:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5592:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "target", + "nameLocation": "5619:6:10", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5611:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5611:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2366, + "mutability": "mutable", + "name": "data", + "nameLocation": "5640:4:10", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5627:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2365, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5627:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5610:35:10" + }, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5669:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5669:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5668:14:10" + }, + "scope": 2537, + "src": "5583:197:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2406, + "nodeType": "Block", + "src": "6122:168:10", + "statements": [ + { + "assignments": [ + 2391, + 2393 + ], + "declarations": [ + { + "constant": false, + "id": 2391, + "mutability": "mutable", + "name": "success", + "nameLocation": "6138:7:10", + "nodeType": "VariableDeclaration", + "scope": 2406, + "src": "6133:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2390, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6133:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "6160:10:10", + "nodeType": "VariableDeclaration", + "scope": 2406, + "src": "6147:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2392, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6147:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2398, + "initialValue": { + "arguments": [ + { + "id": 2396, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "6192:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2394, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "6174:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6181:10:10", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "6174:17:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6174:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6132:65:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2400, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "6241:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2401, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2391, + "src": "6249:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2402, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2393, + "src": "6258:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2403, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "6270:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2399, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "6214:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6214:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2389, + "id": 2405, + "nodeType": "Return", + "src": "6207:76:10" + } + ] + }, + "documentation": { + "id": 2379, + "nodeType": "StructuredDocumentation", + "src": "5786:173:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5973:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2381, + "mutability": "mutable", + "name": "target", + "nameLocation": "6009:6:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6001:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6001:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2383, + "mutability": "mutable", + "name": "data", + "nameLocation": "6038:4:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6025:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2382, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6025:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2385, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6066:12:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6052:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2384, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6052:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5991:93:10" + }, + "returnParameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6108:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2387, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6108:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6107:14:10" + }, + "scope": 2537, + "src": "5964:326:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2423, + "nodeType": "Block", + "src": "6566:101:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2418, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2410, + "src": "6604:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2419, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2412, + "src": "6612:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6618:41:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 2417, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2424, + 2453 + ], + "referencedDeclaration": 2453, + "src": "6583:20:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6583:77:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2416, + "id": 2422, + "nodeType": "Return", + "src": "6576:84:10" + } + ] + }, + "documentation": { + "id": 2408, + "nodeType": "StructuredDocumentation", + "src": "6296:168:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 2424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6478:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2410, + "mutability": "mutable", + "name": "target", + "nameLocation": "6507:6:10", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6499:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6499:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "mutability": "mutable", + "name": "data", + "nameLocation": "6528:4:10", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6515:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2411, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6515:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6498:35:10" + }, + "returnParameters": { + "id": 2416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2415, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6552:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2414, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6552:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6551:14:10" + }, + "scope": 2537, + "src": "6469:198:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2452, + "nodeType": "Block", + "src": "7008:170:10", + "statements": [ + { + "assignments": [ + 2437, + 2439 + ], + "declarations": [ + { + "constant": false, + "id": 2437, + "mutability": "mutable", + "name": "success", + "nameLocation": "7024:7:10", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "7019:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2436, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7019:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7046:10:10", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "7033:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7033:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2444, + "initialValue": { + "arguments": [ + { + "id": 2442, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2429, + "src": "7080:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2440, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "7060:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7067:12:10", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "7060:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7060:25:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7018:67:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2446, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "7129:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2447, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "7137:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2448, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "7146:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2449, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2431, + "src": "7158:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2445, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "7102:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7102:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2435, + "id": 2451, + "nodeType": "Return", + "src": "7095:76:10" + } + ] + }, + "documentation": { + "id": 2425, + "nodeType": "StructuredDocumentation", + "src": "6673:175:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 2453, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6862:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "mutability": "mutable", + "name": "target", + "nameLocation": "6900:6:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6892:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6892:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "mutability": "mutable", + "name": "data", + "nameLocation": "6929:4:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6916:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2428, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6916:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6957:12:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6943:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2430, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6943:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6882:93:10" + }, + "returnParameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2434, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6994:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6994:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6993:14:10" + }, + "scope": 2537, + "src": "6853:325:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2491, + "nodeType": "Block", + "src": "7660:434:10", + "statements": [ + { + "condition": { + "id": 2467, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2458, + "src": "7674:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2489, + "nodeType": "Block", + "src": "8030:58:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2485, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "8052:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2486, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "8064:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2484, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2536, + "src": "8044:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 2487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8044:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2488, + "nodeType": "ExpressionStatement", + "src": "8044:33:10" + } + ] + }, + "id": 2490, + "nodeType": "IfStatement", + "src": "7670:418:10", + "trueBody": { + "id": 2483, + "nodeType": "Block", + "src": "7683:341:10", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2468, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "7701:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7712:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7701:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7722:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7701:22:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2480, + "nodeType": "IfStatement", + "src": "7697:286:10", + "trueBody": { + "id": 2479, + "nodeType": "Block", + "src": "7725:258:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2474, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2456, + "src": "7927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2473, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2225, + "src": "7916:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7916:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7936:31:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 2472, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7908:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7908:60:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2478, + "nodeType": "ExpressionStatement", + "src": "7908:60:10" + } + ] + } + }, + { + "expression": { + "id": 2481, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "8003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2466, + "id": 2482, + "nodeType": "Return", + "src": "7996:17:10" + } + ] + } + } + ] + }, + "documentation": { + "id": 2454, + "nodeType": "StructuredDocumentation", + "src": "7184:277:10", + "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" + }, + "id": 2492, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "7475:26:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2456, + "mutability": "mutable", + "name": "target", + "nameLocation": "7519:6:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7511:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7511:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2458, + "mutability": "mutable", + "name": "success", + "nameLocation": "7540:7:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7535:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2457, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7535:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2460, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7570:10:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7557:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2459, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7557:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "7604:12:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7590:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7590:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7501:121:10" + }, + "returnParameters": { + "id": 2466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2465, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7646:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2464, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7646:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7645:14:10" + }, + "scope": 2537, + "src": "7466:628:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "8475:135:10", + "statements": [ + { + "condition": { + "id": 2504, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "8489:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2513, + "nodeType": "Block", + "src": "8546:58:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2509, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "8568:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2510, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "8580:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2508, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2536, + "src": "8560:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8560:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2512, + "nodeType": "ExpressionStatement", + "src": "8560:33:10" + } + ] + }, + "id": 2514, + "nodeType": "IfStatement", + "src": "8485:119:10", + "trueBody": { + "id": 2507, + "nodeType": "Block", + "src": "8498:42:10", + "statements": [ + { + "expression": { + "id": 2505, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "8519:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2503, + "id": 2506, + "nodeType": "Return", + "src": "8512:17:10" + } + ] + } + } + ] + }, + "documentation": { + "id": 2493, + "nodeType": "StructuredDocumentation", + "src": "8100:210:10", + "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" + }, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "8324:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2495, + "mutability": "mutable", + "name": "success", + "nameLocation": "8355:7:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8350:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2494, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8350:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2497, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "8385:10:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8372:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2496, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8372:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2499, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "8419:12:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8405:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2498, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8405:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8340:97:10" + }, + "returnParameters": { + "id": 2503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8461:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8461:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8460:14:10" + }, + "scope": 2537, + "src": "8315:295:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2535, + "nodeType": "Block", + "src": "8699:457:10", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2523, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "8775:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8786:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8775:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8795:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8775:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2533, + "nodeType": "Block", + "src": "9105:45:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2530, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "9126:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2529, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "9119:6:10", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9119:20:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "9119:20:10" + } + ] + }, + "id": 2534, + "nodeType": "IfStatement", + "src": "8771:379:10", + "trueBody": { + "id": 2528, + "nodeType": "Block", + "src": "8798:301:10", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "8956:133:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8974:40:10", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "9003:10:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8997:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "8997:17:10" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "8978:15:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9042:2:10", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "9046:10:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9038:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9038:19:10" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "9059:15:10" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9031:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "9031:44:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9031:44:10" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2518, + "isOffset": false, + "isSlot": false, + "src": "9003:10:10", + "valueSize": 1 + }, + { + "declaration": 2518, + "isOffset": false, + "isSlot": false, + "src": "9046:10:10", + "valueSize": 1 + } + ], + "id": 2527, + "nodeType": "InlineAssembly", + "src": "8947:142:10" + } + ] + } + } + ] + }, + "id": 2536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "8625:7:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "8646:10:10", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "8633:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2517, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8633:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "8672:12:10", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "8658:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2519, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8658:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8632:53:10" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [], + "src": "8699:0:10" + }, + "scope": 2537, + "src": "8616:540:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2538, + "src": "194:8964:10", + "usedErrors": [] + } + ], + "src": "101:9058:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 2559 + ] + }, + "id": 2560, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2539, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "86:23:11" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2540, + "nodeType": "StructuredDocumentation", + "src": "111:496:11", + "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": 2559, + "linearizedBaseContracts": [ + 2559 + ], + "name": "Context", + "nameLocation": "626:7:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2548, + "nodeType": "Block", + "src": "702:34:11", + "statements": [ + { + "expression": { + "expression": { + "id": 2545, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "719:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "723:6:11", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "719:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2544, + "id": 2547, + "nodeType": "Return", + "src": "712:17:11" + } + ] + }, + "id": 2549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "649:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2541, + "nodeType": "ParameterList", + "parameters": [], + "src": "659:2:11" + }, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "693:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "693:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "692:9:11" + }, + "scope": 2559, + "src": "640:96:11", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "809:32:11", + "statements": [ + { + "expression": { + "expression": { + "id": 2554, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "826:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "830:4:11", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "826:8:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 2553, + "id": 2556, + "nodeType": "Return", + "src": "819:15:11" + } + ] + }, + "id": 2558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "751:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [], + "src": "759:2:11" + }, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2558, + "src": "793:14:11", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2551, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "793:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "792:16:11" + }, + "scope": 2559, + "src": "742:99:11", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2560, + "src": "608:235:11", + "usedErrors": [] + } + ], + "src": "86:758:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "exportedSymbols": { + "Counters": [ + 2633 + ] + }, + "id": 2634, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2561, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "87:23:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Counters", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2562, + "nodeType": "StructuredDocumentation", + "src": "112:311:12", + "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" + }, + "fullyImplemented": true, + "id": 2633, + "linearizedBaseContracts": [ + 2633 + ], + "name": "Counters", + "nameLocation": "432:8:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Counters.Counter", + "id": 2565, + "members": [ + { + "constant": false, + "id": 2564, + "mutability": "mutable", + "name": "_value", + "nameLocation": "794:6:12", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "786:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "786:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Counter", + "nameLocation": "454:7:12", + "nodeType": "StructDefinition", + "scope": 2633, + "src": "447:374:12", + "visibility": "public" + }, + { + "body": { + "id": 2576, + "nodeType": "Block", + "src": "901:38:12", + "statements": [ + { + "expression": { + "expression": { + "id": 2573, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2568, + "src": "918:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "926:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "918:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2572, + "id": 2575, + "nodeType": "Return", + "src": "911:21:12" + } + ] + }, + "id": 2577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "current", + "nameLocation": "836:7:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2568, + "mutability": "mutable", + "name": "counter", + "nameLocation": "860:7:12", + "nodeType": "VariableDeclaration", + "scope": 2577, + "src": "844:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2567, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2566, + "name": "Counter", + "nameLocations": [ + "844:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "844:7:12" + }, + "referencedDeclaration": 2565, + "src": "844:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "843:25:12" + }, + "returnParameters": { + "id": 2572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2571, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2577, + "src": "892:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "891:9:12" + }, + "scope": 2633, + "src": "827:112:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2590, + "nodeType": "Block", + "src": "998:70:12", + "statements": [ + { + "id": 2589, + "nodeType": "UncheckedBlock", + "src": "1008:54:12", + "statements": [ + { + "expression": { + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2583, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "1032:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2585, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1040:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1032:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1032:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2588, + "nodeType": "ExpressionStatement", + "src": "1032:19:12" + } + ] + } + ] + }, + "id": 2591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increment", + "nameLocation": "954:9:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "counter", + "nameLocation": "980:7:12", + "nodeType": "VariableDeclaration", + "scope": 2591, + "src": "964:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2579, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2578, + "name": "Counter", + "nameLocations": [ + "964:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "964:7:12" + }, + "referencedDeclaration": 2565, + "src": "964:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "963:25:12" + }, + "returnParameters": { + "id": 2582, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:12" + }, + "scope": 2633, + "src": "945:123:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2618, + "nodeType": "Block", + "src": "1127:176:12", + "statements": [ + { + "assignments": [ + 2598 + ], + "declarations": [ + { + "constant": false, + "id": 2598, + "mutability": "mutable", + "name": "value", + "nameLocation": "1145:5:12", + "nodeType": "VariableDeclaration", + "scope": 2618, + "src": "1137:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2601, + "initialValue": { + "expression": { + "id": 2599, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2594, + "src": "1153:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1161:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1153:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1137:30:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2603, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "1185:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1193:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1185:9:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77", + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1196:29:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + }, + "value": "Counter: decrement overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + } + ], + "id": 2602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1177:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1177:49:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2608, + "nodeType": "ExpressionStatement", + "src": "1177:49:12" + }, + { + "id": 2617, + "nodeType": "UncheckedBlock", + "src": "1236:61:12", + "statements": [ + { + "expression": { + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2609, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2594, + "src": "1260:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1268:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1260:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2612, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "1277:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1285:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1277:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1260:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2616, + "nodeType": "ExpressionStatement", + "src": "1260:26:12" + } + ] + } + ] + }, + "id": 2619, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decrement", + "nameLocation": "1083:9:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2594, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1109:7:12", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "1093:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2592, + "name": "Counter", + "nameLocations": [ + "1093:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "1093:7:12" + }, + "referencedDeclaration": 2565, + "src": "1093:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1092:25:12" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [], + "src": "1127:0:12" + }, + "scope": 2633, + "src": "1074:229:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "1358:35:12", + "statements": [ + { + "expression": { + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2625, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "1368:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1376:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1368:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1368:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2630, + "nodeType": "ExpressionStatement", + "src": "1368:18:12" + } + ] + }, + "id": 2632, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reset", + "nameLocation": "1318:5:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1340:7:12", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "1324:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2621, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2620, + "name": "Counter", + "nameLocations": [ + "1324:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "1324:7:12" + }, + "referencedDeclaration": 2565, + "src": "1324:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1323:25:12" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [], + "src": "1358:0:12" + }, + "scope": 2633, + "src": "1309:84:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2634, + "src": "424:971:12", + "usedErrors": [] + } + ], + "src": "87:1309:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 3709 + ], + "Strings": [ + 2808 + ] + }, + "id": 2809, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2635, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "101:23:13" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 2636, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2809, + "sourceUnit": 3710, + "src": "126:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2637, + "nodeType": "StructuredDocumentation", + "src": "153:34:13", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2808, + "linearizedBaseContracts": [ + 2808 + ], + "name": "Strings", + "nameLocation": "196:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2640, + "mutability": "constant", + "name": "_SYMBOLS", + "nameLocation": "235:8:13", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "210:54:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 2638, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "210:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 2639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "246:18:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2643, + "mutability": "constant", + "name": "_ADDRESS_LENGTH", + "nameLocation": "293:15:13", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "270:43:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "270:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "body": { + "id": 2690, + "nodeType": "Block", + "src": "486:625:13", + "statements": [ + { + "id": 2689, + "nodeType": "UncheckedBlock", + "src": "496:609:13", + "statements": [ + { + "assignments": [ + 2652 + ], + "declarations": [ + { + "constant": false, + "id": 2652, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "520:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2659, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2655, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "548:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2653, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3709, + "src": "537:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3709_$", + "typeString": "type(library Math)" + } + }, + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "542:5:13", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 3546, + "src": "537:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "537:17:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "537:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "520:38:13" + }, + { + "assignments": [ + 2661 + ], + "declarations": [ + { + "constant": false, + "id": 2661, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "586:6:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "572:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2660, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "572:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2666, + "initialValue": { + "arguments": [ + { + "id": 2664, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2652, + "src": "606:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "595:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 2662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "599:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "595:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "572:41:13" + }, + { + "assignments": [ + 2668 + ], + "declarations": [ + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "635:3:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "627:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2669, + "nodeType": "VariableDeclarationStatement", + "src": "627:11:13" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "708:67:13", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "726:35:13", + "value": { + "arguments": [ + { + "name": "buffer", + "nodeType": "YulIdentifier", + "src": "737:6:13" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:2:13", + "type": "", + "value": "32" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "753:6:13" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "745:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "745:15:13" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "733:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "733:28:13" + }, + "variableNames": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "726:3:13" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2661, + "isOffset": false, + "isSlot": false, + "src": "737:6:13", + "valueSize": 1 + }, + { + "declaration": 2652, + "isOffset": false, + "isSlot": false, + "src": "753:6:13", + "valueSize": 1 + }, + { + "declaration": 2668, + "isOffset": false, + "isSlot": false, + "src": "726:3:13", + "valueSize": 1 + } + ], + "id": 2670, + "nodeType": "InlineAssembly", + "src": "699:76:13" + }, + { + "body": { + "id": 2685, + "nodeType": "Block", + "src": "801:267:13", + "statements": [ + { + "expression": { + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "819:5:13", + "subExpression": { + "id": 2672, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "819:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2674, + "nodeType": "ExpressionStatement", + "src": "819:5:13" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "902:84:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "932:3:13" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "946:5:13" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "953:2:13", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nodeType": "YulIdentifier", + "src": "942:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "942:14:13" + }, + { + "name": "_SYMBOLS", + "nodeType": "YulIdentifier", + "src": "958:8:13" + } + ], + "functionName": { + "name": "byte", + "nodeType": "YulIdentifier", + "src": "937:4:13" + }, + "nodeType": "YulFunctionCall", + "src": "937:30:13" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "924:7:13" + }, + "nodeType": "YulFunctionCall", + "src": "924:44:13" + }, + "nodeType": "YulExpressionStatement", + "src": "924:44:13" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2640, + "isOffset": false, + "isSlot": false, + "src": "958:8:13", + "valueSize": 1 + }, + { + "declaration": 2668, + "isOffset": false, + "isSlot": false, + "src": "932:3:13", + "valueSize": 1 + }, + { + "declaration": 2646, + "isOffset": false, + "isSlot": false, + "src": "946:5:13", + "valueSize": 1 + } + ], + "id": 2675, + "nodeType": "InlineAssembly", + "src": "893:93:13" + }, + { + "expression": { + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2676, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "1003:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1003:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2679, + "nodeType": "ExpressionStatement", + "src": "1003:11:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2680, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "1036:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1036:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2684, + "nodeType": "IfStatement", + "src": "1032:21:13", + "trueBody": { + "id": 2683, + "nodeType": "Break", + "src": "1048:5:13" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 2686, + "nodeType": "WhileStatement", + "src": "788:280:13" + }, + { + "expression": { + "id": 2687, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2661, + "src": "1088:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2650, + "id": 2688, + "nodeType": "Return", + "src": "1081:13:13" + } + ] + } + ] + }, + "documentation": { + "id": 2644, + "nodeType": "StructuredDocumentation", + "src": "320:90:13", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 2691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "424:8:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2646, + "mutability": "mutable", + "name": "value", + "nameLocation": "441:5:13", + "nodeType": "VariableDeclaration", + "scope": 2691, + "src": "433:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "433:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "432:15:13" + }, + "returnParameters": { + "id": 2650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2649, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2691, + "src": "471:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "471:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "470:15:13" + }, + "scope": 2808, + "src": "415:696:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "1290:100:13", + "statements": [ + { + "id": 2709, + "nodeType": "UncheckedBlock", + "src": "1300:84:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2700, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2694, + "src": "1343:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2703, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2694, + "src": "1362:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2701, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3709, + "src": "1350:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3709_$", + "typeString": "type(library Math)" + } + }, + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1355:6:13", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 3669, + "src": "1350:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1350:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1371:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1350:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2699, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2711, + 2787, + 2807 + ], + "referencedDeclaration": 2787, + "src": "1331:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1331:42:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2698, + "id": 2708, + "nodeType": "Return", + "src": "1324:49:13" + } + ] + } + ] + }, + "documentation": { + "id": 2692, + "nodeType": "StructuredDocumentation", + "src": "1117:94:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 2711, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1225:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2694, + "mutability": "mutable", + "name": "value", + "nameLocation": "1245:5:13", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "1237:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1237:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1236:15:13" + }, + "returnParameters": { + "id": 2698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2697, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "1275:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1275:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1274:15:13" + }, + "scope": 2808, + "src": "1216:174:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "1603:347:13", + "statements": [ + { + "assignments": [ + 2722 + ], + "declarations": [ + { + "constant": false, + "id": 2722, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1626:6:13", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "1613:19:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2721, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1613:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1645:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2726, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2716, + "src": "1649:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1645:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1658:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1645:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1635:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2723, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1639:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1635:25:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1613:47:13" + }, + { + "expression": { + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2732, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1670:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2734, + "indexExpression": { + "hexValue": "30", + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1670:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1682:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "1670:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "1670:15:13" + }, + { + "expression": { + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2738, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1695:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2740, + "indexExpression": { + "hexValue": "31", + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1702:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1695:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 2741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1707:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "1695:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "1695:15:13" + }, + { + "body": { + "id": 2772, + "nodeType": "Block", + "src": "1765:83:13", + "statements": [ + { + "expression": { + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2758, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1779:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2760, + "indexExpression": { + "id": 2759, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1786:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1779:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2761, + "name": "_SYMBOLS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2640, + "src": "1791:8:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 2765, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2762, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1800:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1808:3:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "1800:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1791:21:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "1779:33:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2767, + "nodeType": "ExpressionStatement", + "src": "1779:33:13" + }, + { + "expression": { + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2768, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1836:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1826:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2771, + "nodeType": "ExpressionStatement", + "src": "1826:11:13" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2752, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1753:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1757:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1753:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2773, + "initializationExpression": { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "i", + "nameLocation": "1733:1:13", + "nodeType": "VariableDeclaration", + "scope": 2773, + "src": "1725:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1725:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2751, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1737:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2747, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2716, + "src": "1741:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1737:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1737:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1725:26:13" + }, + "loopExpression": { + "expression": { + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1760:3:13", + "subExpression": { + "id": 2755, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1762:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2757, + "nodeType": "ExpressionStatement", + "src": "1760:3:13" + }, + "nodeType": "ForStatement", + "src": "1720:128:13" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1865:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1874:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1865:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1877:34:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + }, + "value": "Strings: hex length insufficient" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + } + ], + "id": 2774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1857:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1857:55:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2780, + "nodeType": "ExpressionStatement", + "src": "1857:55:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2783, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1936:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1929:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2781, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:13", + "typeDescriptions": {} + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1929:14:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2720, + "id": 2785, + "nodeType": "Return", + "src": "1922:21:13" + } + ] + }, + "documentation": { + "id": 2712, + "nodeType": "StructuredDocumentation", + "src": "1396:112:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 2787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1522:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2714, + "mutability": "mutable", + "name": "value", + "nameLocation": "1542:5:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1534:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1534:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2716, + "mutability": "mutable", + "name": "length", + "nameLocation": "1557:6:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1549:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1549:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1533:31:13" + }, + "returnParameters": { + "id": 2720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2719, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1588:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2718, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1588:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1587:15:13" + }, + "scope": 2808, + "src": "1513:437:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2806, + "nodeType": "Block", + "src": "2175:76:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2800, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "2220:4:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2212:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2798, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2212:7:13", + "typeDescriptions": {} + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2212:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2204:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2204:7:13", + "typeDescriptions": {} + } + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2204:22:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2803, + "name": "_ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2643, + "src": "2228:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2795, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2711, + 2787, + 2807 + ], + "referencedDeclaration": 2787, + "src": "2192:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2192:52:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2794, + "id": 2805, + "nodeType": "Return", + "src": "2185:59:13" + } + ] + }, + "documentation": { + "id": 2788, + "nodeType": "StructuredDocumentation", + "src": "1956:141:13", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation." + }, + "id": 2807, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2111:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2790, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2131:4:13", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "2123:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:14:13" + }, + "returnParameters": { + "id": 2794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2793, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "2160:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2792, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2160:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2159:15:13" + }, + "scope": 2808, + "src": "2102:149:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2809, + "src": "188:2065:13", + "usedErrors": [] + } + ], + "src": "101:2153:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 2832 + ], + "IERC165": [ + 2844 + ] + }, + "id": 2833, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2810, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "99:23:14" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2811, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2833, + "sourceUnit": 2845, + "src": "124:23:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2813, + "name": "IERC165", + "nameLocations": [ + "754:7:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "754:7:14" + }, + "id": 2814, + "nodeType": "InheritanceSpecifier", + "src": "754:7:14" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2812, + "nodeType": "StructuredDocumentation", + "src": "149:576:14", + "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 ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." + }, + "fullyImplemented": true, + "id": 2832, + "linearizedBaseContracts": [ + 2832, + 2844 + ], + "name": "ERC165", + "nameLocation": "744:6:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 2843 + ], + "body": { + "id": 2830, + "nodeType": "Block", + "src": "920:64:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2823, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2817, + "src": "937:11:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2825, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "957:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2844_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2844_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2824, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "952:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "952:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2844", + "typeString": "type(contract IERC165)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "966:11:14", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "952:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "937:40:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2822, + "id": 2829, + "nodeType": "Return", + "src": "930:47:14" + } + ] + }, + "documentation": { + "id": 2815, + "nodeType": "StructuredDocumentation", + "src": "768:56:14", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 2831, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "838:17:14", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2819, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "896:8:14" + }, + "parameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2817, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "863:11:14", + "nodeType": "VariableDeclaration", + "scope": 2831, + "src": "856:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2816, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "856:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "855:20:14" + }, + "returnParameters": { + "id": 2822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2831, + "src": "914:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2820, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "914:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "913:6:14" + }, + "scope": 2832, + "src": "829:155:14", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 2833, + "src": "726:260:14", + "usedErrors": [] + } + ], + "src": "99:888:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ] + }, + "id": 2845, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2834, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2835, + "nodeType": "StructuredDocumentation", + "src": "125:279:15", + "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": 2844, + "linearizedBaseContracts": [ + 2844 + ], + "name": "IERC165", + "nameLocation": "415:7:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2836, + "nodeType": "StructuredDocumentation", + "src": "429:340:15", + "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": 2843, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "783:17:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2838, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "808:11:15", + "nodeType": "VariableDeclaration", + "scope": 2843, + "src": "801:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2837, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "801:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "800:20:15" + }, + "returnParameters": { + "id": 2842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2843, + "src": "844:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2840, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "844:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "843:6:15" + }, + "scope": 2844, + "src": "774:76:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2845, + "src": "405:447:15", + "usedErrors": [] + } + ], + "src": "100:753:15" + }, + "id": 15 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3709 + ] + }, + "id": 3710, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2846, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "103:23:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2847, + "nodeType": "StructuredDocumentation", + "src": "128:73:16", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3709, + "linearizedBaseContracts": [ + 3709 + ], + "name": "Math", + "nameLocation": "210:4:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Math.Rounding", + "id": 2851, + "members": [ + { + "id": 2848, + "name": "Down", + "nameLocation": "245:4:16", + "nodeType": "EnumValue", + "src": "245:4:16" + }, + { + "id": 2849, + "name": "Up", + "nameLocation": "287:2:16", + "nodeType": "EnumValue", + "src": "287:2:16" + }, + { + "id": 2850, + "name": "Zero", + "nameLocation": "318:4:16", + "nodeType": "EnumValue", + "src": "318:4:16" + } + ], + "name": "Rounding", + "nameLocation": "226:8:16", + "nodeType": "EnumDefinition", + "src": "221:122:16" + }, + { + "body": { + "id": 2868, + "nodeType": "Block", + "src": "480:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2861, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "497:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2862, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "501:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "497:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2865, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "509:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "497:13:16", + "trueExpression": { + "id": 2864, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "505:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2860, + "id": 2867, + "nodeType": "Return", + "src": "490:20:16" + } + ] + }, + "documentation": { + "id": 2852, + "nodeType": "StructuredDocumentation", + "src": "349:59:16", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2869, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "422:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "a", + "nameLocation": "434:1:16", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "426:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "b", + "nameLocation": "445:1:16", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "437:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "425:22:16" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "471:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "471:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "470:9:16" + }, + "scope": 3709, + "src": "413:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2886, + "nodeType": "Block", + "src": "655:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2879, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2872, + "src": "672:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2880, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "676:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "672:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2883, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "672:13:16", + "trueExpression": { + "id": 2882, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2872, + "src": "680:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2878, + "id": 2885, + "nodeType": "Return", + "src": "665:20:16" + } + ] + }, + "documentation": { + "id": 2870, + "nodeType": "StructuredDocumentation", + "src": "523:60:16", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2887, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "597:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2872, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:16", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "601:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:16", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "612:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:16" + }, + "returnParameters": { + "id": 2878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2877, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "646:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "646:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:9:16" + }, + "scope": 3709, + "src": "588:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2909, + "nodeType": "Block", + "src": "876:82:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2897, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "931:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2898, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2892, + "src": "935:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "931:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2900, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "930:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2901, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "941:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2902, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2892, + "src": "945:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "941:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2904, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "940:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "950:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "940:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "930:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2896, + "id": 2908, + "nodeType": "Return", + "src": "923:28:16" + } + ] + }, + "documentation": { + "id": 2888, + "nodeType": "StructuredDocumentation", + "src": "698:102:16", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2910, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "814:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2890, + "mutability": "mutable", + "name": "a", + "nameLocation": "830:1:16", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "822:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "822:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2892, + "mutability": "mutable", + "name": "b", + "nameLocation": "841:1:16", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "833:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "833:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "821:22:16" + }, + "returnParameters": { + "id": 2896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "867:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "867:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "866:9:16" + }, + "scope": 3709, + "src": "805:153:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2934, + "nodeType": "Block", + "src": "1228:123:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2913, + "src": "1316:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1321:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1316:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2913, + "src": "1330:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1334:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1330:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2927, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1329:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2928, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1339:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1329:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1343:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1329:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1316:28:16", + "trueExpression": { + "hexValue": "30", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1325:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2919, + "id": 2933, + "nodeType": "Return", + "src": "1309:35:16" + } + ] + }, + "documentation": { + "id": 2911, + "nodeType": "StructuredDocumentation", + "src": "964:188:16", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down." + }, + "id": 2935, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "1166:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2913, + "mutability": "mutable", + "name": "a", + "nameLocation": "1182:1:16", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1174:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1174:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2915, + "mutability": "mutable", + "name": "b", + "nameLocation": "1193:1:16", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1185:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1185:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1173:22:16" + }, + "returnParameters": { + "id": 2919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2918, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1219:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1219:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1218:9:16" + }, + "scope": 3709, + "src": "1157:194:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3056, + "nodeType": "Block", + "src": "1795:3797:16", + "statements": [ + { + "id": 3055, + "nodeType": "UncheckedBlock", + "src": "1805:3781:16", + "statements": [ + { + "assignments": [ + 2948 + ], + "declarations": [ + { + "constant": false, + "id": 2948, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "2134:5:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2126:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2126:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2949, + "nodeType": "VariableDeclarationStatement", + "src": "2126:13:16" + }, + { + "assignments": [ + 2951 + ], + "declarations": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "2206:5:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2198:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2198:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2952, + "nodeType": "VariableDeclarationStatement", + "src": "2198:13:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "2278:157:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2296:30:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2313:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2316:1:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2323:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2319:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2319:6:16" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "2306:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2306:20:16" + }, + "variables": [ + { + "name": "mm", + "nodeType": "YulTypedName", + "src": "2300:2:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2343:18:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2356:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2359:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2352:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2352:9:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2343:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2378:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2395:2:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2399:5:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2391:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2391:14:16" + }, + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2410:2:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2414:5:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2407:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:13:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2387:34:16" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "2378:5:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2343:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2399:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2414:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "2378:5:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "2313:1:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "2356:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "2316:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "2359:1:16", + "valueSize": 1 + } + ], + "id": 2953, + "nodeType": "InlineAssembly", + "src": "2269:166:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2954, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2516:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2525:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2516:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2962, + "nodeType": "IfStatement", + "src": "2512:75:16", + "trueBody": { + "id": 2961, + "nodeType": "Block", + "src": "2528:59:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2957, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "2553:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2958, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "2561:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2553:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2946, + "id": 2960, + "nodeType": "Return", + "src": "2546:26:16" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2964, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "2697:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2965, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2711:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2697:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2963, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2689:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2689:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2968, + "nodeType": "ExpressionStatement", + "src": "2689:28:16" + }, + { + "assignments": [ + 2970 + ], + "declarations": [ + { + "constant": false, + "id": 2970, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "2981:9:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2973:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2973:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2971, + "nodeType": "VariableDeclarationStatement", + "src": "2973:17:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3013:291:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3082:38:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3102:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3105:1:16" + }, + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3108:11:16" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "3095:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3095:25:16" + }, + "variableNames": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3082:9:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3202:41:16", + "value": { + "arguments": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3215:5:16" + }, + { + "arguments": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3225:9:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3236:5:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3222:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3222:20:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3211:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3211:32:16" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3202:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3260:30:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3273:5:16" + }, + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3280:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3269:21:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3260:5:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3108:11:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3236:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3260:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3273:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "3202:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "3215:5:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3082:9:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3225:9:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3280:9:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "3102:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "3105:1:16", + "valueSize": 1 + } + ], + "id": 2972, + "nodeType": "InlineAssembly", + "src": "3004:300:16" + }, + { + "assignments": [ + 2974 + ], + "declarations": [ + { + "constant": false, + "id": 2974, + "mutability": "mutable", + "name": "twos", + "nameLocation": "3619:4:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "3611:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3611:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2982, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2975, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3626:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "~", + "prefix": true, + "src": "3641:12:16", + "subExpression": { + "id": 2976, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3642:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3641:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3640:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3626:32:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3611:47:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3681:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3746:37:16", + "value": { + "arguments": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3765:11:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3778:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3761:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3761:22:16" + }, + "variableNames": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3746:11:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3850:25:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3863:5:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3870:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3859:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3859:16:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3850:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3990:39:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4010:1:16", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4013:4:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4006:12:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4020:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4002:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4002:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4027:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3998:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3998:31:16" + }, + "variableNames": [ + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3990:4:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3746:11:16", + "valueSize": 1 + }, + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3765:11:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3850:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3863:5:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3778:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3870:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3990:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "4013:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "4020:4:16", + "valueSize": 1 + } + ], + "id": 2983, + "nodeType": "InlineAssembly", + "src": "3672:371:16" + }, + { + "expression": { + "id": 2988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2984, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "4109:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2985, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "4118:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2986, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2974, + "src": "4126:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4118:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4109:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2989, + "nodeType": "ExpressionStatement", + "src": "4109:21:16" + }, + { + "assignments": [ + 2991 + ], + "declarations": [ + { + "constant": false, + "id": 2991, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "4456:7:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "4448:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4448:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2998, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4467:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2993, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4471:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4467:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2995, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4466:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4486:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4466:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:39:16" + }, + { + "expression": { + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2999, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4704:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4715:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3001, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4719:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3002, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4733:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4715:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4704:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3006, + "nodeType": "ExpressionStatement", + "src": "4704:36:16" + }, + { + "expression": { + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3007, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4773:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4784:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3009, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4788:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3010, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4802:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4788:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4784:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4773:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3014, + "nodeType": "ExpressionStatement", + "src": "4773:36:16" + }, + { + "expression": { + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3015, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4843:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4854:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3017, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4858:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3018, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4872:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4858:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4854:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4843:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3022, + "nodeType": "ExpressionStatement", + "src": "4843:36:16" + }, + { + "expression": { + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3023, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4913:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4924:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3025, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4928:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3026, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4942:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4928:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4924:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4913:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3030, + "nodeType": "ExpressionStatement", + "src": "4913:36:16" + }, + { + "expression": { + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3031, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4983:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4994:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3033, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4998:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3034, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5012:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4998:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4994:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4983:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3038, + "nodeType": "ExpressionStatement", + "src": "4983:36:16" + }, + { + "expression": { + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3039, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5054:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5065:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3041, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "5069:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3042, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5083:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5069:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3046, + "nodeType": "ExpressionStatement", + "src": "5054:36:16" + }, + { + "expression": { + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3047, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "5524:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3048, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "5533:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3049, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5541:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5533:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5524:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3052, + "nodeType": "ExpressionStatement", + "src": "5524:24:16" + }, + { + "expression": { + "id": 3053, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "5569:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2946, + "id": 3054, + "nodeType": "Return", + "src": "5562:13:16" + } + ] + } + ] + }, + "documentation": { + "id": 2936, + "nodeType": "StructuredDocumentation", + "src": "1357:305:16", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license." + }, + "id": 3057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "1676:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "x", + "nameLocation": "1700:1:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1692:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1692:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2940, + "mutability": "mutable", + "name": "y", + "nameLocation": "1719:1:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1711:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1711:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1738:11:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1730:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1682:73:16" + }, + "returnParameters": { + "id": 2946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2945, + "mutability": "mutable", + "name": "result", + "nameLocation": "1787:6:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1779:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1779:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1778:16:16" + }, + "scope": 3709, + "src": "1667:3925:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3100, + "nodeType": "Block", + "src": "5872:189:16", + "statements": [ + { + "assignments": [ + 3073 + ], + "declarations": [ + { + "constant": false, + "id": 3073, + "mutability": "mutable", + "name": "result", + "nameLocation": "5890:6:16", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "5882:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5882:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3079, + "initialValue": { + "arguments": [ + { + "id": 3075, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3060, + "src": "5906:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3076, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3062, + "src": "5909:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3077, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "5912:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3074, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3057, + 3101 + ], + "referencedDeclaration": 3057, + "src": "5899:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5899:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5882:42:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3080, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3067, + "src": "5938:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3081, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "5950:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5959:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "5950:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "5938:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3085, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3060, + "src": "5972:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3086, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3062, + "src": "5975:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3087, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "5978:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3084, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "5965:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5965:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5993:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5965:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5938:56:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3097, + "nodeType": "IfStatement", + "src": "5934:98:16", + "trueBody": { + "id": 3096, + "nodeType": "Block", + "src": "5996:36:16", + "statements": [ + { + "expression": { + "id": 3094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3092, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "6010:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6020:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6010:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3095, + "nodeType": "ExpressionStatement", + "src": "6010:11:16" + } + ] + } + }, + { + "expression": { + "id": 3098, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "6048:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3071, + "id": 3099, + "nodeType": "Return", + "src": "6041:13:16" + } + ] + }, + "documentation": { + "id": 3058, + "nodeType": "StructuredDocumentation", + "src": "5598:121:16", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 3101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "5733:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3060, + "mutability": "mutable", + "name": "x", + "nameLocation": "5757:1:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5749:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5749:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3062, + "mutability": "mutable", + "name": "y", + "nameLocation": "5776:1:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5768:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5768:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3064, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "5795:11:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5787:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5787:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3067, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "5825:8:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5816:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3066, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3065, + "name": "Rounding", + "nameLocations": [ + "5816:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "5816:8:16" + }, + "referencedDeclaration": 2851, + "src": "5816:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "5739:100:16" + }, + "returnParameters": { + "id": 3071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5863:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5863:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5862:9:16" + }, + "scope": 3709, + "src": "5724:337:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3212, + "nodeType": "Block", + "src": "6337:1585:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "6351:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6356:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6351:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3115, + "nodeType": "IfStatement", + "src": "6347:45:16", + "trueBody": { + "id": 3114, + "nodeType": "Block", + "src": "6359:33:16", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6380:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3108, + "id": 3113, + "nodeType": "Return", + "src": "6373:8:16" + } + ] + } + }, + { + "assignments": [ + 3117 + ], + "declarations": [ + { + "constant": false, + "id": 3117, + "mutability": "mutable", + "name": "result", + "nameLocation": "7079:6:16", + "nodeType": "VariableDeclaration", + "scope": 3212, + "src": "7071:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7071:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3126, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7088:1:16", + "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": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3120, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7099:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3119, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3381, + 3417 + ], + "referencedDeclaration": 3381, + "src": "7094:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7094:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7105:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7094:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7093:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7088:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7071:36:16" + }, + { + "id": 3211, + "nodeType": "UncheckedBlock", + "src": "7508:408:16", + "statements": [ + { + "expression": { + "id": 3136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3127, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7532:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3128, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7542:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7551:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3130, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7555:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7551:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7542:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3133, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7541:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7566:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7541:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7532:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3137, + "nodeType": "ExpressionStatement", + "src": "7532:35:16" + }, + { + "expression": { + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3138, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7581:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3139, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7591:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3140, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7600:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3141, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7604:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7600:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7591:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3144, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7590:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7615:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7590:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7581:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3148, + "nodeType": "ExpressionStatement", + "src": "7581:35:16" + }, + { + "expression": { + "id": 3158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3149, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7630:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3150, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7640:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3151, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7649:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3152, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7653:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7649:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7640:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3155, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7639:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7664:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7639:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7630:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3159, + "nodeType": "ExpressionStatement", + "src": "7630:35:16" + }, + { + "expression": { + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3160, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7679:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3161, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7689:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3162, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7698:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3163, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7702:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7698:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7689:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3166, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7688:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7713:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7688:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7679:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3170, + "nodeType": "ExpressionStatement", + "src": "7679:35:16" + }, + { + "expression": { + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3171, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7728:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3172, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7738:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3173, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7747:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3174, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7751:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7747:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7738:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7737:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7762:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7737:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7728:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3181, + "nodeType": "ExpressionStatement", + "src": "7728:35:16" + }, + { + "expression": { + "id": 3191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3182, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7777:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3183, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7787:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3184, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7796:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7800:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7796:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7787:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3188, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7786:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7811:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7786:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7777:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3192, + "nodeType": "ExpressionStatement", + "src": "7777:35:16" + }, + { + "expression": { + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3193, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7826:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3194, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7836:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3195, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7845:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3196, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7849:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7845:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7836:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3199, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7835:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7860:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7835:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7826:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3203, + "nodeType": "ExpressionStatement", + "src": "7826:35:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3205, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7886:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3206, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7894:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3207, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7898:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7894:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3204, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "7882:3:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7882:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3108, + "id": 3210, + "nodeType": "Return", + "src": "7875:30:16" + } + ] + } + ] + }, + "documentation": { + "id": 3102, + "nodeType": "StructuredDocumentation", + "src": "6067:208:16", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 3213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "6289:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3104, + "mutability": "mutable", + "name": "a", + "nameLocation": "6302:1:16", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6294:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6294:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6293:11:16" + }, + "returnParameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6328:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6328:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6327:9:16" + }, + "scope": 3709, + "src": "6280:1642:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3248, + "nodeType": "Block", + "src": "8098:161:16", + "statements": [ + { + "id": 3247, + "nodeType": "UncheckedBlock", + "src": "8108:145:16", + "statements": [ + { + "assignments": [ + 3225 + ], + "declarations": [ + { + "constant": false, + "id": 3225, + "mutability": "mutable", + "name": "result", + "nameLocation": "8140:6:16", + "nodeType": "VariableDeclaration", + "scope": 3247, + "src": "8132:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8132:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3229, + "initialValue": { + "arguments": [ + { + "id": 3227, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "8154:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3226, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3213, + 3249 + ], + "referencedDeclaration": 3213, + "src": "8149:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8149:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8132:24:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8177:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3231, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "8187:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3232, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "8199:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8208:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "8199:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "8187:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3235, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8214:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3236, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8223:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8214:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3238, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "8232:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8214:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8187:46:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8240:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8187:54:16", + "trueExpression": { + "hexValue": "31", + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8236:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3244, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8186:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "8177:65:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3223, + "id": 3246, + "nodeType": "Return", + "src": "8170:72:16" + } + ] + } + ] + }, + "documentation": { + "id": 3214, + "nodeType": "StructuredDocumentation", + "src": "7928:89:16", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 3249, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8031:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3216, + "mutability": "mutable", + "name": "a", + "nameLocation": "8044:1:16", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8036:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8056:8:16", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8047:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3218, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3217, + "name": "Rounding", + "nameLocations": [ + "8047:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "8047:8:16" + }, + "referencedDeclaration": 2851, + "src": "8047:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8035:30:16" + }, + "returnParameters": { + "id": 3223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3222, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8089:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8088:9:16" + }, + "scope": 3709, + "src": "8022:237:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3380, + "nodeType": "Block", + "src": "8444:922:16", + "statements": [ + { + "assignments": [ + 3258 + ], + "declarations": [ + { + "constant": false, + "id": 3258, + "mutability": "mutable", + "name": "result", + "nameLocation": "8462:6:16", + "nodeType": "VariableDeclaration", + "scope": 3380, + "src": "8454:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8454:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3260, + "initialValue": { + "hexValue": "30", + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8471:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8454:18:16" + }, + { + "id": 3377, + "nodeType": "UncheckedBlock", + "src": "8482:855:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3261, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8510:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8519:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8510:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8525:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8510:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "8506:99:16", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "8528:77:16", + "statements": [ + { + "expression": { + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3266, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8546:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8556:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8546:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3269, + "nodeType": "ExpressionStatement", + "src": "8546:13:16" + }, + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3270, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8577:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8587:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8577:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "8577:13:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3276, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8622:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8631:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8622:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8636:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3290, + "nodeType": "IfStatement", + "src": "8618:96:16", + "trueBody": { + "id": 3289, + "nodeType": "Block", + "src": "8639:75:16", + "statements": [ + { + "expression": { + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3281, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8657:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8667:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8657:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3284, + "nodeType": "ExpressionStatement", + "src": "8657:12:16" + }, + { + "expression": { + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3285, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8687:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8697:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8687:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "8687:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3291, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8731:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8740:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8731:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8731:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3305, + "nodeType": "IfStatement", + "src": "8727:96:16", + "trueBody": { + "id": 3304, + "nodeType": "Block", + "src": "8748:75:16", + "statements": [ + { + "expression": { + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8766:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8776:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8766:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "8766:12:16" + }, + { + "expression": { + "id": 3302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3300, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8796:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8806:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8796:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3303, + "nodeType": "ExpressionStatement", + "src": "8796:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3306, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8840:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8849:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8840:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8854:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8840:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3320, + "nodeType": "IfStatement", + "src": "8836:96:16", + "trueBody": { + "id": 3319, + "nodeType": "Block", + "src": "8857:75:16", + "statements": [ + { + "expression": { + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3311, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8875:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8885:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8875:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3314, + "nodeType": "ExpressionStatement", + "src": "8875:12:16" + }, + { + "expression": { + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3315, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8905:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8915:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8905:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "8905:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3321, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8949:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8958:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8949:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8962:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8949:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3335, + "nodeType": "IfStatement", + "src": "8945:93:16", + "trueBody": { + "id": 3334, + "nodeType": "Block", + "src": "8965:73:16", + "statements": [ + { + "expression": { + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3326, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8983:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8993:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8983:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3329, + "nodeType": "ExpressionStatement", + "src": "8983:11:16" + }, + { + "expression": { + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3330, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9012:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9022:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "9012:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "9012:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3336, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9055:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9064:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9055:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9068:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9055:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3350, + "nodeType": "IfStatement", + "src": "9051:93:16", + "trueBody": { + "id": 3349, + "nodeType": "Block", + "src": "9071:73:16", + "statements": [ + { + "expression": { + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3341, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9089:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9099:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9089:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3344, + "nodeType": "ExpressionStatement", + "src": "9089:11:16" + }, + { + "expression": { + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3345, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9118:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9128:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9118:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3348, + "nodeType": "ExpressionStatement", + "src": "9118:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3351, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9161:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9170:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9161:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9174:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9161:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3365, + "nodeType": "IfStatement", + "src": "9157:93:16", + "trueBody": { + "id": 3364, + "nodeType": "Block", + "src": "9177:73:16", + "statements": [ + { + "expression": { + "id": 3358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3356, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9195:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 3357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9205:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9195:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3359, + "nodeType": "ExpressionStatement", + "src": "9195:11:16" + }, + { + "expression": { + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3360, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9224:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9234:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9224:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "9224:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3366, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9267:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9276:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9267:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9280:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9267:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3376, + "nodeType": "IfStatement", + "src": "9263:64:16", + "trueBody": { + "id": 3375, + "nodeType": "Block", + "src": "9283:44:16", + "statements": [ + { + "expression": { + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3371, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9301:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9311:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9301:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3374, + "nodeType": "ExpressionStatement", + "src": "9301:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3378, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9353:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3256, + "id": 3379, + "nodeType": "Return", + "src": "9346:13:16" + } + ] + }, + "documentation": { + "id": 3250, + "nodeType": "StructuredDocumentation", + "src": "8265:113:16", + "text": " @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 3381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "8392:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3252, + "mutability": "mutable", + "name": "value", + "nameLocation": "8405:5:16", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "8397:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8397:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8396:15:16" + }, + "returnParameters": { + "id": 3256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3255, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "8435:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8435:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8434:9:16" + }, + "scope": 3709, + "src": "8383:983:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3416, + "nodeType": "Block", + "src": "9599:165:16", + "statements": [ + { + "id": 3415, + "nodeType": "UncheckedBlock", + "src": "9609:149:16", + "statements": [ + { + "assignments": [ + 3393 + ], + "declarations": [ + { + "constant": false, + "id": 3393, + "mutability": "mutable", + "name": "result", + "nameLocation": "9641:6:16", + "nodeType": "VariableDeclaration", + "scope": 3415, + "src": "9633:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3392, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9633:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3397, + "initialValue": { + "arguments": [ + { + "id": 3395, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "9655:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3394, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3381, + 3417 + ], + "referencedDeclaration": 3381, + "src": "9650:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9650:11:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9633:28:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3398, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "9682:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3399, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3387, + "src": "9692:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3400, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "9704:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9713:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "9704:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "9692:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9719:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 3404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "9724:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9719:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3406, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "9733:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9719:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9692:46:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9692:54:16", + "trueExpression": { + "hexValue": "31", + "id": 3409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9741:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3412, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9691:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "9682:65:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3391, + "id": 3414, + "nodeType": "Return", + "src": "9675:72:16" + } + ] + } + ] + }, + "documentation": { + "id": 3382, + "nodeType": "StructuredDocumentation", + "src": "9372:142:16", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "9528:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3384, + "mutability": "mutable", + "name": "value", + "nameLocation": "9541:5:16", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9533:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9533:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3387, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "9557:8:16", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9548:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3386, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3385, + "name": "Rounding", + "nameLocations": [ + "9548:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "9548:8:16" + }, + "referencedDeclaration": 2851, + "src": "9548:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "9532:34:16" + }, + "returnParameters": { + "id": 3391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9590:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9590:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9589:9:16" + }, + "scope": 3709, + "src": "9519:245:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3545, + "nodeType": "Block", + "src": "9951:828:16", + "statements": [ + { + "assignments": [ + 3426 + ], + "declarations": [ + { + "constant": false, + "id": 3426, + "mutability": "mutable", + "name": "result", + "nameLocation": "9969:6:16", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "9961:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9961:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3428, + "initialValue": { + "hexValue": "30", + "id": 3427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9978:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9961:18:16" + }, + { + "id": 3542, + "nodeType": "UncheckedBlock", + "src": "9989:761:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3429, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10017:5:16", + "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": 3432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10026:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10030:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10026:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10017:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3445, + "nodeType": "IfStatement", + "src": "10013:99:16", + "trueBody": { + "id": 3444, + "nodeType": "Block", + "src": "10034:78:16", + "statements": [ + { + "expression": { + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3434, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10052:5:16", + "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": 3437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10061:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10065:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10061:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10052:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3439, + "nodeType": "ExpressionStatement", + "src": "10052:15:16" + }, + { + "expression": { + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3440, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10085:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10095:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10085:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3443, + "nodeType": "ExpressionStatement", + "src": "10085:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3446, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10129:5:16", + "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": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10138:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10142:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10138:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10129:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3462, + "nodeType": "IfStatement", + "src": "10125:99:16", + "trueBody": { + "id": 3461, + "nodeType": "Block", + "src": "10146:78:16", + "statements": [ + { + "expression": { + "id": 3455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10164:5:16", + "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": 3454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10173:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10177:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10173:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10164:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3456, + "nodeType": "ExpressionStatement", + "src": "10164:15:16" + }, + { + "expression": { + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3457, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10197:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10207:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10197:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3460, + "nodeType": "ExpressionStatement", + "src": "10197:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3463, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10241:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10250:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10254:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10250:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10241:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3479, + "nodeType": "IfStatement", + "src": "10237:99:16", + "trueBody": { + "id": 3478, + "nodeType": "Block", + "src": "10258:78:16", + "statements": [ + { + "expression": { + "id": 3472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3468, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10276:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10285:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10289:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10285:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10276:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3473, + "nodeType": "ExpressionStatement", + "src": "10276:15:16" + }, + { + "expression": { + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3474, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10309:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10319:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10309:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "10309:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3480, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10353:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10362:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10366:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10362:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10353:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3496, + "nodeType": "IfStatement", + "src": "10349:96:16", + "trueBody": { + "id": 3495, + "nodeType": "Block", + "src": "10369:76:16", + "statements": [ + { + "expression": { + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3485, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10387:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10396:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10400:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10396:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10387:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3490, + "nodeType": "ExpressionStatement", + "src": "10387:14:16" + }, + { + "expression": { + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3491, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10419:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10429:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10419:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3494, + "nodeType": "ExpressionStatement", + "src": "10419:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3497, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10462:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10471:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10475:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10471:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10462:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3513, + "nodeType": "IfStatement", + "src": "10458:96:16", + "trueBody": { + "id": 3512, + "nodeType": "Block", + "src": "10478:76:16", + "statements": [ + { + "expression": { + "id": 3506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3502, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10496:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10505:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10509:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10505:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10496:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3507, + "nodeType": "ExpressionStatement", + "src": "10496:14:16" + }, + { + "expression": { + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3508, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10528:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10538:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10528:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3511, + "nodeType": "ExpressionStatement", + "src": "10528:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10571:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10580:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10584:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10580:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10571:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3530, + "nodeType": "IfStatement", + "src": "10567:96:16", + "trueBody": { + "id": 3529, + "nodeType": "Block", + "src": "10587:76:16", + "statements": [ + { + "expression": { + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3519, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10605:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10614:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10618:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10614:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10605:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3524, + "nodeType": "ExpressionStatement", + "src": "10605:14:16" + }, + { + "expression": { + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3525, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10637:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10647:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10637:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3528, + "nodeType": "ExpressionStatement", + "src": "10637:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3531, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10680:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 3534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10689:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 3533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10693:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10689:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "10680:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3541, + "nodeType": "IfStatement", + "src": "10676:64:16", + "trueBody": { + "id": 3540, + "nodeType": "Block", + "src": "10696:44:16", + "statements": [ + { + "expression": { + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3536, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10714:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10724:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10714:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3539, + "nodeType": "ExpressionStatement", + "src": "10714:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3543, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10766:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3424, + "id": 3544, + "nodeType": "Return", + "src": "10759:13:16" + } + ] + }, + "documentation": { + "id": 3418, + "nodeType": "StructuredDocumentation", + "src": "9770:114:16", + "text": " @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 3546, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "9898:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3420, + "mutability": "mutable", + "name": "value", + "nameLocation": "9912:5:16", + "nodeType": "VariableDeclaration", + "scope": 3546, + "src": "9904:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3419, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9904:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9903:15:16" + }, + "returnParameters": { + "id": 3424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3423, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3546, + "src": "9942:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9942:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9941:9:16" + }, + "scope": 3709, + "src": "9889:890:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3581, + "nodeType": "Block", + "src": "11014:165:16", + "statements": [ + { + "id": 3580, + "nodeType": "UncheckedBlock", + "src": "11024:149:16", + "statements": [ + { + "assignments": [ + 3558 + ], + "declarations": [ + { + "constant": false, + "id": 3558, + "mutability": "mutable", + "name": "result", + "nameLocation": "11056:6:16", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "11048:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11048:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3562, + "initialValue": { + "arguments": [ + { + "id": 3560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "11071:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3559, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3546, + 3582 + ], + "referencedDeclaration": 3546, + "src": "11065:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11065:12:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11048:29:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3563, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "11098:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3564, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3552, + "src": "11108:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3565, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "11120:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11129:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "11120:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "11108:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11135:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 3569, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "11139:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11135:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "11148:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11135:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11108:45:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11160:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11108:53:16", + "trueExpression": { + "hexValue": "31", + "id": 3574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11156:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3577, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11107:55:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11098:64:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3556, + "id": 3579, + "nodeType": "Return", + "src": "11091:71:16" + } + ] + } + ] + }, + "documentation": { + "id": 3547, + "nodeType": "StructuredDocumentation", + "src": "10785:143:16", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3582, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "10942:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "value", + "nameLocation": "10956:5:16", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "10948:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10948:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3552, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10972:8:16", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "10963:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3551, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3550, + "name": "Rounding", + "nameLocations": [ + "10963:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "10963:8:16" + }, + "referencedDeclaration": 2851, + "src": "10963:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10947:34:16" + }, + "returnParameters": { + "id": 3556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "11005:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11005:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11004:9:16" + }, + "scope": 3709, + "src": "10933:246:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "11493:600:16", + "statements": [ + { + "assignments": [ + 3591 + ], + "declarations": [ + { + "constant": false, + "id": 3591, + "mutability": "mutable", + "name": "result", + "nameLocation": "11511:6:16", + "nodeType": "VariableDeclaration", + "scope": 3668, + "src": "11503:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11503:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3593, + "initialValue": { + "hexValue": "30", + "id": 3592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11520:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11503:18:16" + }, + { + "id": 3665, + "nodeType": "UncheckedBlock", + "src": "11531:533:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3594, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11559:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11568:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11559:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11574:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11559:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3608, + "nodeType": "IfStatement", + "src": "11555:98:16", + "trueBody": { + "id": 3607, + "nodeType": "Block", + "src": "11577:76:16", + "statements": [ + { + "expression": { + "id": 3601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3599, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11595:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11605:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11595:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "nodeType": "ExpressionStatement", + "src": "11595:13:16" + }, + { + "expression": { + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3603, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11626:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11636:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11626:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3606, + "nodeType": "ExpressionStatement", + "src": "11626:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3609, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11670:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11679:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11670:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11670:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3623, + "nodeType": "IfStatement", + "src": "11666:95:16", + "trueBody": { + "id": 3622, + "nodeType": "Block", + "src": "11687:74:16", + "statements": [ + { + "expression": { + "id": 3616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3614, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11705:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11715:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11705:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3617, + "nodeType": "ExpressionStatement", + "src": "11705:12:16" + }, + { + "expression": { + "id": 3620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3618, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11735:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11735:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3621, + "nodeType": "ExpressionStatement", + "src": "11735:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3624, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11778:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11787:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11778:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11792:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11778:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3638, + "nodeType": "IfStatement", + "src": "11774:95:16", + "trueBody": { + "id": 3637, + "nodeType": "Block", + "src": "11795:74:16", + "statements": [ + { + "expression": { + "id": 3631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3629, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11813:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11823:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11813:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3632, + "nodeType": "ExpressionStatement", + "src": "11813:12:16" + }, + { + "expression": { + "id": 3635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3633, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11843:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11853:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11843:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3636, + "nodeType": "ExpressionStatement", + "src": "11843:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3639, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11886:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11895:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11886:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11900:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11886:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3653, + "nodeType": "IfStatement", + "src": "11882:95:16", + "trueBody": { + "id": 3652, + "nodeType": "Block", + "src": "11903:74:16", + "statements": [ + { + "expression": { + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3644, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11921:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11931:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11921:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "nodeType": "ExpressionStatement", + "src": "11921:12:16" + }, + { + "expression": { + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3648, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11951:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11961:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11951:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "11951:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3654, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11994:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12003:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11994:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12007:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11994:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3664, + "nodeType": "IfStatement", + "src": "11990:64:16", + "trueBody": { + "id": 3663, + "nodeType": "Block", + "src": "12010:44:16", + "statements": [ + { + "expression": { + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3659, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "12028:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12028:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "12028:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3666, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "12080:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3589, + "id": 3667, + "nodeType": "Return", + "src": "12073:13:16" + } + ] + }, + "documentation": { + "id": 3583, + "nodeType": "StructuredDocumentation", + "src": "11185:240:16", + "text": " @dev Return the log in base 256, rounded down, of a positive value.\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": 3669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "11439:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3585, + "mutability": "mutable", + "name": "value", + "nameLocation": "11454:5:16", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "11446:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11446:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11445:15:16" + }, + "returnParameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "11484:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11484:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11483:9:16" + }, + "scope": 3709, + "src": "11430:663:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3707, + "nodeType": "Block", + "src": "12329:173:16", + "statements": [ + { + "id": 3706, + "nodeType": "UncheckedBlock", + "src": "12339:157:16", + "statements": [ + { + "assignments": [ + 3681 + ], + "declarations": [ + { + "constant": false, + "id": 3681, + "mutability": "mutable", + "name": "result", + "nameLocation": "12371:6:16", + "nodeType": "VariableDeclaration", + "scope": 3706, + "src": "12363:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12363:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3685, + "initialValue": { + "arguments": [ + { + "id": 3683, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3672, + "src": "12387:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3682, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3669, + 3708 + ], + "referencedDeclaration": 3669, + "src": "12380:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12380:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12363:30:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3686, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "12414:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3687, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "12424:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3688, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "12436:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12445:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "12436:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "12424:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12451:1:16", + "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": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3692, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "12457:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "38", + "id": 3693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12457:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3695, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12456:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3672, + "src": "12471:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12424:52:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12483:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12424:60:16", + "trueExpression": { + "hexValue": "31", + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12479:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3703, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12423:62:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12414:71:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3705, + "nodeType": "Return", + "src": "12407:78:16" + } + ] + } + ] + }, + "documentation": { + "id": 3670, + "nodeType": "StructuredDocumentation", + "src": "12099:143:16", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "12256:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3672, + "mutability": "mutable", + "name": "value", + "nameLocation": "12271:5:16", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12263:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12263:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "12287:8:16", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12278:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3674, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3673, + "name": "Rounding", + "nameLocations": [ + "12278:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "12278:8:16" + }, + "referencedDeclaration": 2851, + "src": "12278:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "12262:34:16" + }, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12320:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12319:9:16" + }, + "scope": 3709, + "src": "12247:255:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3710, + "src": "202:12302:16", + "usedErrors": [] + } + ], + "src": "103:12402:16" + }, + "id": 16 + }, + "contracts/ERC5725.sol": { + "ast": { + "absolutePath": "contracts/ERC5725.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ] + }, + "id": 3994, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3711, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "id": 3712, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 2047, + "src": "62:57:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3713, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 778, + "src": "120:56:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "id": 3714, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 1120, + "src": "177:65:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3715, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 113, + "src": "243:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "file": "@openzeppelin/contracts/utils/Counters.sol", + "id": 3716, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 2634, + "src": "296:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/IERC5725.sol", + "file": "./IERC5725.sol", + "id": 3717, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 4076, + "src": "349:24:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 3718, + "name": "IERC5725", + "nameLocations": [ + "404:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "404:8:17" + }, + "id": 3719, + "nodeType": "InheritanceSpecifier", + "src": "404:8:17" + }, + { + "baseName": { + "id": 3720, + "name": "ERC721", + "nameLocations": [ + "414:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "414:6:17" + }, + "id": 3721, + "nodeType": "InheritanceSpecifier", + "src": "414:6:17" + } + ], + "canonicalName": "ERC5725", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": false, + "id": 3993, + "linearizedBaseContracts": [ + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "ERC5725", + "nameLocation": "393:7:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3725, + "libraryName": { + "id": 3722, + "name": "SafeERC20", + "nameLocations": [ + "433:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "433:9:17" + }, + "nodeType": "UsingForDirective", + "src": "427:27:17", + "typeName": { + "id": 3724, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3723, + "name": "IERC20", + "nameLocations": [ + "447:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "447:6:17" + }, + "referencedDeclaration": 777, + "src": "447:6:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "documentation": { + "id": 3726, + "nodeType": "StructuredDocumentation", + "src": "460:36:17", + "text": "@dev mapping for claimed payouts" + }, + "id": 3730, + "mutability": "mutable", + "name": "_payoutClaimed", + "nameLocation": "570:14:17", + "nodeType": "VariableDeclaration", + "scope": 3993, + "src": "501:83:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 3729, + "keyType": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "501:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 3728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "741:82:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3737, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "767:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3736, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "759:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "id": 3739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:27:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "typeString": "literal_string \"ERC5725: invalid token ID\"" + }, + "value": "ERC5725: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "typeString": "literal_string \"ERC5725: invalid token ID\"" + } + ], + "id": 3735, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "751:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "751:54:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3741, + "nodeType": "ExpressionStatement", + "src": "751:54:17" + }, + { + "id": 3742, + "nodeType": "PlaceholderStatement", + "src": "815:1:17" + } + ] + }, + "documentation": { + "id": 3731, + "nodeType": "StructuredDocumentation", + "src": "591:108:17", + "text": " @notice Checks if the tokenId exists and its valid\n @param tokenId The NFT token id" + }, + "id": 3744, + "name": "validToken", + "nameLocation": "713:10:17", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "732:7:17", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "724:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "724:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "723:17:17" + }, + "src": "704:119:17", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4014 + ], + "body": { + "id": 3802, + "nodeType": "Block", + "src": "953:394:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3757, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "979:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3756, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "971:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "971:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3759, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "991:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "995:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "991:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "971:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1003:18:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "typeString": "literal_string \"Not owner of NFT\"" + }, + "value": "Not owner of NFT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "typeString": "literal_string \"Not owner of NFT\"" + } + ], + "id": 3755, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "963:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "963:59:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3764, + "nodeType": "ExpressionStatement", + "src": "963:59:17" + }, + { + "assignments": [ + 3766 + ], + "declarations": [ + { + "constant": false, + "id": 3766, + "mutability": "mutable", + "name": "amountClaimed", + "nameLocation": "1040:13:17", + "nodeType": "VariableDeclaration", + "scope": 3802, + "src": "1032:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1032:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3770, + "initialValue": { + "arguments": [ + { + "id": 3768, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1072:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3767, + "name": "claimablePayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1056:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1056:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1032:48:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3772, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1098:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1114:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1098:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "id": 3775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1117:28:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "typeString": "literal_string \"ERC5725: No pending payout\"" + }, + "value": "ERC5725: No pending payout" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "typeString": "literal_string \"ERC5725: No pending payout\"" + } + ], + "id": 3771, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1090:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1090:56:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3777, + "nodeType": "ExpressionStatement", + "src": "1090:56:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3779, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1176:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1185:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1189:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1185:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3782, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1197:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3778, + "name": "PayoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1162:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1162:49:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3784, + "nodeType": "EmitStatement", + "src": "1157:54:17" + }, + { + "expression": { + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3785, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "1222:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3787, + "indexExpression": { + "id": 3786, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1237:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1222:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 3788, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1249:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1222:40:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "1222:40:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3797, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1314:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1318:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1314:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3799, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1326:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3793, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1291:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3792, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "1279:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1279:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3791, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "1272:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1272:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1301:12:17", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 870, + "src": "1272:41:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 3800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1272:68:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3801, + "nodeType": "ExpressionStatement", + "src": "1272:68:17" + } + ] + }, + "documentation": { + "id": 3745, + "nodeType": "StructuredDocumentation", + "src": "829:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "379607f5", + "id": 3803, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3752, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "944:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3753, + "kind": "modifierInvocation", + "modifierName": { + "id": 3751, + "name": "validToken", + "nameLocations": [ + "933:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "933:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "933:19:17" + } + ], + "name": "claim", + "nameLocation": "882:5:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3750, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3749, + "name": "IERC5725", + "nameLocations": [ + "923:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "923:8:17" + } + ], + "src": "914:18:17" + }, + "parameters": { + "id": 3748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3747, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "896:7:17", + "nodeType": "VariableDeclaration", + "scope": 3803, + "src": "888:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "888:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "887:17:17" + }, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [], + "src": "953:0:17" + }, + "scope": 3993, + "src": "873:474:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4038 + ], + "body": { + "id": 3819, + "nodeType": "Block", + "src": "1492:68:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1528:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3815, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1537:5:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1543:9:17", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1537:15:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3813, + "name": "vestedPayoutAtTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "1509:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 3817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1509:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3812, + "id": 3818, + "nodeType": "Return", + "src": "1502:51:17" + } + ] + }, + "documentation": { + "id": 3804, + "nodeType": "StructuredDocumentation", + "src": "1353:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "db900b9d", + "id": 3820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "vestedPayout", + "nameLocation": "1406:12:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3809, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3808, + "name": "IERC5725", + "nameLocations": [ + "1457:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1457:8:17" + } + ], + "src": "1448:18:17" + }, + "parameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1427:7:17", + "nodeType": "VariableDeclaration", + "scope": 3820, + "src": "1419:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1419:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1418:17:17" + }, + "returnParameters": { + "id": 3812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3811, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1484:6:17", + "nodeType": "VariableDeclaration", + "scope": 3820, + "src": "1476:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1476:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1475:16:17" + }, + "scope": 3993, + "src": "1397:163:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4048 + ], + "documentation": { + "id": 3821, + "nodeType": "StructuredDocumentation", + "src": "1566:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 3832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayoutAtTime", + "nameLocation": "1619:18:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3828, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3827, + "name": "IERC5725", + "nameLocations": [ + "1735:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1735:8:17" + } + ], + "src": "1726:18:17" + }, + "parameters": { + "id": 3826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3823, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1646:7:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1638:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1638:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3825, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1663:9:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1655:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1655:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1637:36:17" + }, + "returnParameters": { + "id": 3831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3830, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1770:6:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1762:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1762:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1761:16:17" + }, + "scope": 3993, + "src": "1610:168:17", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 4056 + ], + "body": { + "id": 3853, + "nodeType": "Block", + "src": "1988:64:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "2013:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3845, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2005:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2005:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 3849, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "2037:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3848, + "name": "vestedPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "2024:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2024:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2005:40:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3844, + "id": 3852, + "nodeType": "Return", + "src": "1998:47:17" + } + ] + }, + "documentation": { + "id": 3833, + "nodeType": "StructuredDocumentation", + "src": "1784:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "81d0526d", + "id": 3854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3840, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "1942:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3841, + "kind": "modifierInvocation", + "modifierName": { + "id": 3839, + "name": "validToken", + "nameLocations": [ + "1931:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "1931:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "1931:19:17" + } + ], + "name": "vestingPayout", + "nameLocation": "1837:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3838, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3837, + "name": "IERC5725", + "nameLocations": [ + "1913:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1913:8:17" + } + ], + "src": "1904:18:17" + }, + "parameters": { + "id": 3836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3835, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1859:7:17", + "nodeType": "VariableDeclaration", + "scope": 3854, + "src": "1851:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1851:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1850:17:17" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1976:6:17", + "nodeType": "VariableDeclaration", + "scope": 3854, + "src": "1968:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1968:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1967:16:17" + }, + "scope": 3993, + "src": "1828:224:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4030 + ], + "body": { + "id": 3875, + "nodeType": "Block", + "src": "2264:71:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3868, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2294:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3867, + "name": "vestedPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "2281:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2281:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "baseExpression": { + "id": 3870, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "2305:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3872, + "indexExpression": { + "id": 3871, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2320:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2305:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2281:47:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3866, + "id": 3874, + "nodeType": "Return", + "src": "2274:54:17" + } + ] + }, + "documentation": { + "id": 3855, + "nodeType": "StructuredDocumentation", + "src": "2058:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "9e0bd808", + "id": 3876, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2218:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3863, + "kind": "modifierInvocation", + "modifierName": { + "id": 3861, + "name": "validToken", + "nameLocations": [ + "2207:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2207:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2207:19:17" + } + ], + "name": "claimablePayout", + "nameLocation": "2111:15:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3860, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3859, + "name": "IERC5725", + "nameLocations": [ + "2189:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2189:8:17" + } + ], + "src": "2180:18:17" + }, + "parameters": { + "id": 3858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2135:7:17", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "2127:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2127:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2126:17:17" + }, + "returnParameters": { + "id": 3866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3865, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2252:6:17", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "2244:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2244:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2243:16:17" + }, + "scope": 3993, + "src": "2102:233:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4022 + ], + "body": { + "id": 3893, + "nodeType": "Block", + "src": "2545:47:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3889, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "2562:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3891, + "indexExpression": { + "id": 3890, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "2577:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2562:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3888, + "id": 3892, + "nodeType": "Return", + "src": "2555:30:17" + } + ] + }, + "documentation": { + "id": 3877, + "nodeType": "StructuredDocumentation", + "src": "2341:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "84e968e6", + "id": 3894, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3884, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "2499:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3885, + "kind": "modifierInvocation", + "modifierName": { + "id": 3883, + "name": "validToken", + "nameLocations": [ + "2488:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2488:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2488:19:17" + } + ], + "name": "claimedPayout", + "nameLocation": "2394:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3882, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3881, + "name": "IERC5725", + "nameLocations": [ + "2470:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2470:8:17" + } + ], + "src": "2461:18:17" + }, + "parameters": { + "id": 3880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3879, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2416:7:17", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "2408:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2408:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2407:17:17" + }, + "returnParameters": { + "id": 3888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3887, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2533:6:17", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "2525:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2525:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2524:16:17" + }, + "scope": 3993, + "src": "2385:207:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4066 + ], + "body": { + "id": 3917, + "nodeType": "Block", + "src": "2828:64:17", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 3910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2857:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3909, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3984, + "src": "2846:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2846:19:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 3913, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2876:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3912, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3992, + "src": "2867:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2867:17:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3915, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2845:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 3908, + "id": 3916, + "nodeType": "Return", + "src": "2838:47:17" + } + ] + }, + "documentation": { + "id": 3895, + "nodeType": "StructuredDocumentation", + "src": "2598:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "576561d2", + "id": 3918, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3902, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2756:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3903, + "kind": "modifierInvocation", + "modifierName": { + "id": 3901, + "name": "validToken", + "nameLocations": [ + "2745:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2745:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2745:19:17" + } + ], + "name": "vestingPeriod", + "nameLocation": "2651:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3900, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3899, + "name": "IERC5725", + "nameLocations": [ + "2727:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2727:8:17" + } + ], + "src": "2718:18:17" + }, + "parameters": { + "id": 3898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3897, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2673:7:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2665:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2665:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2664:17:17" + }, + "returnParameters": { + "id": 3908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3905, + "mutability": "mutable", + "name": "vestingStart", + "nameLocation": "2790:12:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2782:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2782:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3907, + "mutability": "mutable", + "name": "vestingEnd", + "nameLocation": "2812:10:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2804:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2804:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2781:42:17" + }, + "scope": 3993, + "src": "2642:250:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4074 + ], + "body": { + "id": 3935, + "nodeType": "Block", + "src": "3055:45:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3932, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3921, + "src": "3085:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3931, + "name": "_payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3968, + "src": "3072:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3072:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3930, + "id": 3934, + "nodeType": "Return", + "src": "3065:28:17" + } + ] + }, + "documentation": { + "id": 3919, + "nodeType": "StructuredDocumentation", + "src": "2898:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "8b9cb90b", + "id": 3936, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3926, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3921, + "src": "3022:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3927, + "kind": "modifierInvocation", + "modifierName": { + "id": 3925, + "name": "validToken", + "nameLocations": [ + "3011:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "3011:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "3011:19:17" + } + ], + "name": "payoutToken", + "nameLocation": "2951:11:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3924, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3923, + "name": "IERC5725", + "nameLocations": [ + "3001:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "3001:8:17" + } + ], + "src": "2992:18:17" + }, + "parameters": { + "id": 3922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3921, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2971:7:17", + "nodeType": "VariableDeclaration", + "scope": 3936, + "src": "2963:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2963:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2962:17:17" + }, + "returnParameters": { + "id": 3930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3929, + "mutability": "mutable", + "name": "token", + "nameLocation": "3048:5:17", + "nodeType": "VariableDeclaration", + "scope": 3936, + "src": "3040:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3040:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3039:15:17" + }, + "scope": 3993, + "src": "2942:158:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1213, + 2843 + ], + "body": { + "id": 3959, + "nodeType": "Block", + "src": "3370:105:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3947, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3939, + "src": "3387:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 3949, + "name": "IERC5725", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "3407:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC5725_$4075_$", + "typeString": "type(contract IERC5725)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC5725_$4075_$", + "typeString": "type(contract IERC5725)" + } + ], + "id": 3948, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3402:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3402:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC5725_$4075", + "typeString": "type(contract IERC5725)" + } + }, + "id": 3951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3417:11:17", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "3402:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3387:41:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3955, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3939, + "src": "3456:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3953, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3432:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC5725_$3993_$", + "typeString": "type(contract super ERC5725)" + } + }, + "id": 3954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3438:17:17", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1213, + "src": "3432:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3432:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3387:81:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3946, + "id": 3958, + "nodeType": "Return", + "src": "3380:88:17" + } + ] + }, + "documentation": { + "id": 3937, + "nodeType": "StructuredDocumentation", + "src": "3106:97:17", + "text": " @dev See {IERC165-supportsInterface}.\n IERC5725 interfaceId = 0xd707c82a" + }, + "functionSelector": "01ffc9a7", + "id": 3960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "3217:17:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3943, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3941, + "name": "ERC721", + "nameLocations": [ + "3316:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "3316:6:17" + }, + { + "id": 3942, + "name": "IERC165", + "nameLocations": [ + "3324:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "3324:7:17" + } + ], + "src": "3307:25:17" + }, + "parameters": { + "id": 3940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3939, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "3242:11:17", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "3235:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3938, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3235:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "3234:20:17" + }, + "returnParameters": { + "id": 3946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3945, + "mutability": "mutable", + "name": "supported", + "nameLocation": "3355:9:17", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "3350:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3944, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3350:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3349:16:17" + }, + "scope": 3993, + "src": "3208:267:17", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "documentation": { + "id": 3961, + "nodeType": "StructuredDocumentation", + "src": "3481:204:17", + "text": " @dev Internal function to get the payout token of a given vesting NFT\n @param tokenId on which to check the payout token address\n @return address payout token address" + }, + "id": 3968, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "3699:12:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3963, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3720:7:17", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "3712:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3712:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3711:17:17" + }, + "returnParameters": { + "id": 3967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3966, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "3760:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3759:9:17" + }, + "scope": 3993, + "src": "3690:79:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3969, + "nodeType": "StructuredDocumentation", + "src": "3775:289:17", + "text": " @dev Internal function to get the total payout of a given vesting NFT.\n @dev This is the total that will be paid out to the NFT owner, including historical tokens.\n @param tokenId to check\n @return uint256 the total payout of a given vesting NFT" + }, + "id": 3976, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "4078:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3971, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4094:7:17", + "nodeType": "VariableDeclaration", + "scope": 3976, + "src": "4086:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4086:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4085:17:17" + }, + "returnParameters": { + "id": 3975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3974, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3976, + "src": "4134:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4134:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4133:9:17" + }, + "scope": 3993, + "src": "4069:74:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3977, + "nodeType": "StructuredDocumentation", + "src": "4149:181:17", + "text": " @dev Internal function to get the start time of a given vesting NFT\n @param tokenId to check\n @return uint256 the start time in epoch timestamp" + }, + "id": 3984, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "4344:10:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3980, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3979, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4363:7:17", + "nodeType": "VariableDeclaration", + "scope": 3984, + "src": "4355:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4355:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4354:17:17" + }, + "returnParameters": { + "id": 3983, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3982, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3984, + "src": "4403:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4403:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4402:9:17" + }, + "scope": 3993, + "src": "4335:77:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3985, + "nodeType": "StructuredDocumentation", + "src": "4418:177:17", + "text": " @dev Internal function to get the end time of a given vesting NFT\n @param tokenId to check\n @return uint256 the end time in epoch timestamp" + }, + "id": 3992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "4609:8:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3987, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4626:7:17", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4618:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4618:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4617:17:17" + }, + "returnParameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3990, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4666:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4666:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4665:9:17" + }, + "scope": 3993, + "src": "4600:75:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3994, + "src": "375:4302:17", + "usedErrors": [] + } + ], + "src": "36:4642:17" + }, + "id": 17 + }, + "contracts/IERC5725.sol": { + "ast": { + "absolutePath": "contracts/IERC5725.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ] + }, + "id": 4076, + "license": "CC0-1.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3995, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "36:23:18" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "id": 3996, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4076, + "sourceUnit": 2163, + "src": "60:58:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3998, + "name": "IERC721", + "nameLocations": [ + "572:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "572:7:18" + }, + "id": 3999, + "nodeType": "InheritanceSpecifier", + "src": "572:7:18" + } + ], + "canonicalName": "IERC5725", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3997, + "nodeType": "StructuredDocumentation", + "src": "120:429:18", + "text": " @title Non-Fungible Vesting Token Standard\n @notice A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve\n scheduled using timestamps.\n @dev Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the\n tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT." + }, + "fullyImplemented": false, + "id": 4075, + "linearizedBaseContracts": [ + 4075, + 2162, + 2844 + ], + "name": "IERC5725", + "nameLocation": "560:8:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 4000, + "nodeType": "StructuredDocumentation", + "src": "586:294:18", + "text": " This event is emitted when the payout is claimed through the claim function\n @param tokenId the NFT tokenId of the assets being claimed.\n @param recipient The address which is receiving the payout.\n @param claimAmount The amount of tokens being claimed." + }, + "eventSelector": "e97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312", + "id": 4008, + "name": "PayoutClaimed", + "nameLocation": "891:13:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 4007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4002, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "921:7:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "905:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "905:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4004, + "indexed": true, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "946:9:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "930:25:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "930:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4006, + "indexed": false, + "mutability": "mutable", + "name": "claimAmount", + "nameLocation": "965:11:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "957:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "957:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "904:73:18" + }, + "src": "885:93:18" + }, + { + "documentation": { + "id": 4009, + "nodeType": "StructuredDocumentation", + "src": "984:336:18", + "text": " @notice Claim the pending payout for the NFT\n @dev MUST grant the claimablePayout value at the time of claim being called\n MUST revert if not called by the token owner or approved users\n MUST emit PayoutClaimed\n SHOULD revert if there is nothing to claim\n @param tokenId The NFT token id" + }, + "functionSelector": "379607f5", + "id": 4014, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claim", + "nameLocation": "1334:5:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4011, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1348:7:18", + "nodeType": "VariableDeclaration", + "scope": 4014, + "src": "1340:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1340:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1339:17:18" + }, + "returnParameters": { + "id": 4013, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:0:18" + }, + "scope": 4075, + "src": "1325:41:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4015, + "nodeType": "StructuredDocumentation", + "src": "1372:220:18", + "text": " @notice Number of tokens for the NFT which have been claimed at the current timestamp\n @param tokenId The NFT token id\n @return payout The total amount of payout tokens claimed for this NFT" + }, + "functionSelector": "84e968e6", + "id": 4022, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimedPayout", + "nameLocation": "1606:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4017, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1628:7:18", + "nodeType": "VariableDeclaration", + "scope": 4022, + "src": "1620:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1620:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1619:17:18" + }, + "returnParameters": { + "id": 4021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4020, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1668:6:18", + "nodeType": "VariableDeclaration", + "scope": 4022, + "src": "1660:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1659:16:18" + }, + "scope": 4075, + "src": "1597:79:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4023, + "nodeType": "StructuredDocumentation", + "src": "1682:356:18", + "text": " @notice Number of tokens for the NFT which can be claimed at the current timestamp\n @dev It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\n @param tokenId The NFT token id\n @return payout The amount of unlocked payout tokens for the NFT which have not yet been claimed" + }, + "functionSelector": "9e0bd808", + "id": 4030, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimablePayout", + "nameLocation": "2052:15:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4025, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2076:7:18", + "nodeType": "VariableDeclaration", + "scope": 4030, + "src": "2068:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2067:17:18" + }, + "returnParameters": { + "id": 4029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4028, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2116:6:18", + "nodeType": "VariableDeclaration", + "scope": 4030, + "src": "2108:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:16:18" + }, + "scope": 4075, + "src": "2043:81:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4031, + "nodeType": "StructuredDocumentation", + "src": "2130:443:18", + "text": " @notice Total amount of tokens which have been vested at the current timestamp.\n This number also includes vested tokens which have been claimed.\n @dev It is RECOMMENDED that this function calls `vestedPayoutAtTime` with\n `block.timestamp` as the `timestamp` parameter.\n @param tokenId The NFT token id\n @return payout Total amount of tokens which have been vested at the current timestamp." + }, + "functionSelector": "db900b9d", + "id": 4038, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayout", + "nameLocation": "2587:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4033, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2608:7:18", + "nodeType": "VariableDeclaration", + "scope": 4038, + "src": "2600:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2600:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2599:17:18" + }, + "returnParameters": { + "id": 4037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4036, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2648:6:18", + "nodeType": "VariableDeclaration", + "scope": 4038, + "src": "2640:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2640:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2639:16:18" + }, + "scope": 4075, + "src": "2578:78:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4039, + "nodeType": "StructuredDocumentation", + "src": "2662:525:18", + "text": " @notice Total amount of vested tokens at the provided timestamp.\n This number also includes vested tokens which have been claimed.\n @dev `timestamp` MAY be both in the future and in the past.\n Zero MUST be returned if the timestamp is before the token was minted.\n @param tokenId The NFT token id\n @param timestamp The timestamp to check on, can be both in the past and the future\n @return payout Total amount of tokens which have been vested at the provided timestamp" + }, + "functionSelector": "d744515f", + "id": 4048, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayoutAtTime", + "nameLocation": "3201:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4041, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3228:7:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3220:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3220:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4043, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "3245:9:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3237:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3237:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3219:36:18" + }, + "returnParameters": { + "id": 4047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4046, + "mutability": "mutable", + "name": "payout", + "nameLocation": "3287:6:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3279:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3279:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3278:16:18" + }, + "scope": 4075, + "src": "3192:103:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4049, + "nodeType": "StructuredDocumentation", + "src": "3301:305:18", + "text": " @notice Number of tokens for an NFT which are currently vesting.\n @dev The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\n @param tokenId The NFT token id\n @return payout The number of tokens for the NFT which are vesting until a future date." + }, + "functionSelector": "81d0526d", + "id": 4056, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestingPayout", + "nameLocation": "3620:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4051, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3642:7:18", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "3634:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3634:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3633:17:18" + }, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4054, + "mutability": "mutable", + "name": "payout", + "nameLocation": "3682:6:18", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "3674:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3674:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3673:16:18" + }, + "scope": 4075, + "src": "3611:79:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4057, + "nodeType": "StructuredDocumentation", + "src": "3696:379:18", + "text": " @notice The start and end timestamps for the vesting of the provided NFT\n MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\n @param tokenId The NFT token id\n @return vestingStart The beginning of the vesting as a unix timestamp\n @return vestingEnd The ending of the vesting as a unix timestamp" + }, + "functionSelector": "576561d2", + "id": 4066, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestingPeriod", + "nameLocation": "4089:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4059, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4111:7:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4103:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4103:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4102:17:18" + }, + "returnParameters": { + "id": 4065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4062, + "mutability": "mutable", + "name": "vestingStart", + "nameLocation": "4151:12:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4143:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4143:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4064, + "mutability": "mutable", + "name": "vestingEnd", + "nameLocation": "4173:10:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4165:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4165:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4142:42:18" + }, + "scope": 4075, + "src": "4080:105:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4067, + "nodeType": "StructuredDocumentation", + "src": "4191:190:18", + "text": " @notice Token which is used to pay out the vesting claims\n @param tokenId The NFT token id\n @return token The token which is used to pay out the vesting claims" + }, + "functionSelector": "8b9cb90b", + "id": 4074, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "payoutToken", + "nameLocation": "4395:11:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4069, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4415:7:18", + "nodeType": "VariableDeclaration", + "scope": 4074, + "src": "4407:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4407:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4406:17:18" + }, + "returnParameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4072, + "mutability": "mutable", + "name": "token", + "nameLocation": "4455:5:18", + "nodeType": "VariableDeclaration", + "scope": 4074, + "src": "4447:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4446:15:18" + }, + "scope": 4075, + "src": "4386:76:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4076, + "src": "550:3914:18", + "usedErrors": [] + } + ], + "src": "36:4429:18" + }, + "id": 18 + }, + "contracts/mocks/ERC20Mock.sol": { + "ast": { + "absolutePath": "contracts/mocks/ERC20Mock.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "ERC20": [ + 699 + ], + "ERC20Mock": [ + 4131 + ], + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 4132, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4077, + "literals": [ + "solidity", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:23:19" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 4078, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4132, + "sourceUnit": 700, + "src": "61:55:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4079, + "name": "ERC20", + "nameLocations": [ + "140:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 699, + "src": "140:5:19" + }, + "id": 4080, + "nodeType": "InheritanceSpecifier", + "src": "140:5:19" + } + ], + "canonicalName": "ERC20Mock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4131, + "linearizedBaseContracts": [ + 4131, + 699, + 802, + 777, + 2559 + ], + "name": "ERC20Mock", + "nameLocation": "127:9:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4082, + "mutability": "mutable", + "name": "_decimals", + "nameLocation": "166:9:19", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "152:23:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4081, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "152:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4107, + "nodeType": "Block", + "src": "332:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4098, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "348:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "352:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "348:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4100, + "name": "supply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4084, + "src": "360:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4097, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "342:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "342:26:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4102, + "nodeType": "ExpressionStatement", + "src": "342:26:19" + }, + { + "expression": { + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4103, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4082, + "src": "378:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4104, + "name": "decimals_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4086, + "src": "390:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "378:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4106, + "nodeType": "ExpressionStatement", + "src": "378:21:19" + } + ] + }, + "id": 4108, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4093, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4088, + "src": "316:5:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4094, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4090, + "src": "323:7:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4095, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4092, + "name": "ERC20", + "nameLocations": [ + "310:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 699, + "src": "310:5:19" + }, + "nodeType": "ModifierInvocation", + "src": "310:21:19" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4084, + "mutability": "mutable", + "name": "supply_", + "nameLocation": "211:7:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "203:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4083, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "203:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4086, + "mutability": "mutable", + "name": "decimals_", + "nameLocation": "234:9:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "228:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4085, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "228:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4088, + "mutability": "mutable", + "name": "name_", + "nameLocation": "267:5:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "253:19:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4087, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4090, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "296:7:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "282:21:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4089, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "282:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "193:116:19" + }, + "returnParameters": { + "id": 4096, + "nodeType": "ParameterList", + "parameters": [], + "src": "332:0:19" + }, + "scope": 4131, + "src": "182:224:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4120, + "nodeType": "Block", + "src": "461:34:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4116, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "477:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4117, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "481:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4115, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "471:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "471:17:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "471:17:19" + } + ] + }, + "functionSelector": "94bf804d", + "id": 4121, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "421:4:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4110, + "mutability": "mutable", + "name": "amount", + "nameLocation": "434:6:19", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "426:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4112, + "mutability": "mutable", + "name": "to", + "nameLocation": "450:2:19", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "442:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "442:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "425:28:19" + }, + "returnParameters": { + "id": 4114, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:0:19" + }, + "scope": 4131, + "src": "412:83:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 187 + ], + "body": { + "id": 4129, + "nodeType": "Block", + "src": "566:33:19", + "statements": [ + { + "expression": { + "id": 4127, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4082, + "src": "583:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 4126, + "id": 4128, + "nodeType": "Return", + "src": "576:16:19" + } + ] + }, + "functionSelector": "313ce567", + "id": 4130, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "510:8:19", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4123, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "541:8:19" + }, + "parameters": { + "id": 4122, + "nodeType": "ParameterList", + "parameters": [], + "src": "518:2:19" + }, + "returnParameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4130, + "src": "559:5:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4124, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "559:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "558:7:19" + }, + "scope": 4131, + "src": "501:98:19", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 4132, + "src": "118:483:19", + "usedErrors": [] + } + ], + "src": "36:566:19" + }, + "id": 19 + }, + "contracts/reference/LinearVestingNFT.sol": { + "ast": { + "absolutePath": "contracts/reference/LinearVestingNFT.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "LinearVestingNFT": [ + 4398 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ] + }, + "id": 4399, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4133, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:20" + }, + { + "absolutePath": "contracts/ERC5725.sol", + "file": "../ERC5725.sol", + "id": 4134, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4399, + "sourceUnit": 3994, + "src": "62:24:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4135, + "name": "ERC5725", + "nameLocations": [ + "117:7:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "117:7:20" + }, + "id": 4136, + "nodeType": "InheritanceSpecifier", + "src": "117:7:20" + } + ], + "canonicalName": "LinearVestingNFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4398, + "linearizedBaseContracts": [ + 4398, + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "LinearVestingNFT", + "nameLocation": "97:16:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4140, + "libraryName": { + "id": 4137, + "name": "SafeERC20", + "nameLocations": [ + "137:9:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "137:9:20" + }, + "nodeType": "UsingForDirective", + "src": "131:27:20", + "typeName": { + "id": 4139, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4138, + "name": "IERC20", + "nameLocations": [ + "151:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "151:6:20" + }, + "referencedDeclaration": 777, + "src": "151:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "LinearVestingNFT.VestDetails", + "id": 4156, + "members": [ + { + "constant": false, + "id": 4143, + "mutability": "mutable", + "name": "payoutToken", + "nameLocation": "200:11:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "193:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4142, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4141, + "name": "IERC20", + "nameLocations": [ + "193:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "193:6:20" + }, + "referencedDeclaration": 777, + "src": "193:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4146, + "mutability": "mutable", + "name": "payout", + "nameLocation": "251:6:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "243:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "243:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4149, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "318:9:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "310:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4148, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4152, + "mutability": "mutable", + "name": "endTime", + "nameLocation": "374:7:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "366:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4151, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "366:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4155, + "mutability": "mutable", + "name": "cliff", + "nameLocation": "425:5:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "417:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4154, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "417:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "VestDetails", + "nameLocation": "171:11:20", + "nodeType": "StructDefinition", + "scope": 4398, + "src": "164:355:20", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "03101bfd", + "id": 4161, + "mutability": "mutable", + "name": "vestDetails", + "nameLocation": "563:11:20", + "nodeType": "VariableDeclaration", + "scope": 4398, + "src": "524:50:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails)" + }, + "typeName": { + "id": 4160, + "keyType": { + "id": 4157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "532:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "524:31:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails)" + }, + "valueType": { + "id": 4159, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4158, + "name": "VestDetails", + "nameLocations": [ + "543:11:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4156, + "src": "543:11:20" + }, + "referencedDeclaration": 4156, + "src": "543:11:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage_ptr", + "typeString": "struct LinearVestingNFT.VestDetails" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4162, + "nodeType": "StructuredDocumentation", + "src": "626:34:20", + "text": "@dev tracker of current NFT id" + }, + "id": 4164, + "mutability": "mutable", + "name": "_tokenIdTracker", + "nameLocation": "681:15:20", + "nodeType": "VariableDeclaration", + "scope": 4398, + "src": "665:31:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4176, + "nodeType": "Block", + "src": "822:2:20", + "statements": [] + }, + "documentation": { + "id": 4165, + "nodeType": "StructuredDocumentation", + "src": "703:39:20", + "text": " @dev See {IERC5725}." + }, + "id": 4177, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4172, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4167, + "src": "808:4:20", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4173, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4169, + "src": "814:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4174, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4171, + "name": "ERC721", + "nameLocations": [ + "801:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "801:6:20" + }, + "nodeType": "ModifierInvocation", + "src": "801:20:20" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4167, + "mutability": "mutable", + "name": "name", + "nameLocation": "773:4:20", + "nodeType": "VariableDeclaration", + "scope": 4177, + "src": "759:18:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4166, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "759:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4169, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "793:6:20", + "nodeType": "VariableDeclaration", + "scope": 4177, + "src": "779:20:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "779:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "758:42:20" + }, + "returnParameters": { + "id": 4175, + "nodeType": "ParameterList", + "parameters": [], + "src": "822:0:20" + }, + "scope": 4398, + "src": "747:77:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4262, + "nodeType": "Block", + "src": "1511:660:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4195, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1529:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 4196, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1542:5:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1548:9:20", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1542:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1529:28:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "737461727454696d652063616e6e6f74206265206f6e207468652070617374", + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1559:33:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "typeString": "literal_string \"startTime cannot be on the past\"" + }, + "value": "startTime cannot be on the past" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "typeString": "literal_string \"startTime cannot be on the past\"" + } + ], + "id": 4194, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1521:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1521:72:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4201, + "nodeType": "ExpressionStatement", + "src": "1521:72:20" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4203, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4180, + "src": "1611:2:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1625:1:20", + "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": 4205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1617:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1617:7:20", + "typeDescriptions": {} + } + }, + "id": 4207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1617:10:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1611:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "id": 4209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1629:24:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + }, + "value": "to cannot be address 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + } + ], + "id": 4202, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1603:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1603:51:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4211, + "nodeType": "ExpressionStatement", + "src": "1603:51:20" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4213, + "name": "cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "1672:5:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4214, + "name": "duration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4186, + "src": "1681:8:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1672:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6475726174696f6e206e6565647320746f206265206d6f7265207468616e20636c696666", + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1691:38:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "typeString": "literal_string \"duration needs to be more than cliff\"" + }, + "value": "duration needs to be more than cliff" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "typeString": "literal_string \"duration needs to be more than cliff\"" + } + ], + "id": 4212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1664:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1664:66:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4218, + "nodeType": "ExpressionStatement", + "src": "1664:66:20" + }, + { + "assignments": [ + 4220 + ], + "declarations": [ + { + "constant": false, + "id": 4220, + "mutability": "mutable", + "name": "newTokenId", + "nameLocation": "1749:10:20", + "nodeType": "VariableDeclaration", + "scope": 4262, + "src": "1741:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1741:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4222, + "initialValue": { + "id": 4221, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4164, + "src": "1762:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1741:36:20" + }, + { + "expression": { + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4223, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "1788:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4225, + "indexExpression": { + "id": 4224, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "1800:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1788:23:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4227, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4191, + "src": "1853:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "id": 4228, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4182, + "src": "1880:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4229, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1911:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4230, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1943:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4231, + "name": "duration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4186, + "src": "1955:8:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1943:20:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4233, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1984:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4234, + "name": "cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "1996:5:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1984:17:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "id": 4226, + "name": "VestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "1814:11:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_VestDetails_$4156_storage_ptr_$", + "typeString": "type(struct LinearVestingNFT.VestDetails storage pointer)" + } + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "1840:11:20", + "1872:6:20", + "1900:9:20", + "1934:7:20", + "1977:5:20" + ], + "names": [ + "payoutToken", + "payout", + "startTime", + "endTime", + "cliff" + ], + "nodeType": "FunctionCall", + "src": "1814:198:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_memory_ptr", + "typeString": "struct LinearVestingNFT.VestDetails memory" + } + }, + "src": "1788:224:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4238, + "nodeType": "ExpressionStatement", + "src": "1788:224:20" + }, + { + "expression": { + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2023:17:20", + "subExpression": { + "id": 4239, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4164, + "src": "2023:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4241, + "nodeType": "ExpressionStatement", + "src": "2023:17:20" + }, + { + "expression": { + "arguments": [ + { + "id": 4243, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4180, + "src": "2056:2:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4244, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "2060:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4242, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "2050:5:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2050:21:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4246, + "nodeType": "ExpressionStatement", + "src": "2050:21:20" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4253, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2130:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2134:6:20", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2130:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4257, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2150:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LinearVestingNFT_$4398", + "typeString": "contract LinearVestingNFT" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LinearVestingNFT_$4398", + "typeString": "contract LinearVestingNFT" + } + ], + "id": 4256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2142:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2142:7:20", + "typeDescriptions": {} + } + }, + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2142:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4259, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4182, + "src": "2157:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4249, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "2100:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4248, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "2088:11:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2088:23:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4247, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2081:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2081:31:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2113:16:20", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 896, + "src": "2081:48:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 4260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2081:83:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4261, + "nodeType": "ExpressionStatement", + "src": "2081:83:20" + } + ] + }, + "documentation": { + "id": 4178, + "nodeType": "StructuredDocumentation", + "src": "830:497:20", + "text": " @notice Creates a new vesting NFT and mints it\n @dev Token amount should be approved to be transferred by this contract before executing create\n @param to The recipient of the NFT\n @param amount The total assets to be locked over time\n @param startTime When the vesting starts in epoch timestamp\n @param duration The vesting duration in seconds\n @param cliff The cliff duration in seconds\n @param token The ERC20 token to vest over time" + }, + "functionSelector": "c196f42f", + "id": 4263, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "create", + "nameLocation": "1341:6:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4180, + "mutability": "mutable", + "name": "to", + "nameLocation": "1365:2:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1357:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1357:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4182, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1385:6:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1377:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1377:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4184, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "1409:9:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1401:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4183, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1401:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4186, + "mutability": "mutable", + "name": "duration", + "nameLocation": "1436:8:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1428:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4185, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1428:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4188, + "mutability": "mutable", + "name": "cliff", + "nameLocation": "1462:5:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1454:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4187, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1454:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4191, + "mutability": "mutable", + "name": "token", + "nameLocation": "1484:5:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1477:12:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4190, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4189, + "name": "IERC20", + "nameLocations": [ + "1477:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1477:6:20" + }, + "referencedDeclaration": 777, + "src": "1477:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "1347:148:20" + }, + "returnParameters": { + "id": 4193, + "nodeType": "ParameterList", + "parameters": [], + "src": "1511:0:20" + }, + "scope": 4398, + "src": "1332:839:20", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3832 + ], + "body": { + "id": 4319, + "nodeType": "Block", + "src": "2404:289:20", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4278, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2418:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [ + { + "id": 4280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2437:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4279, + "name": "_cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4397, + "src": "2430:6:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2430:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2418:27:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4286, + "nodeType": "IfStatement", + "src": "2414:66:20", + "trueBody": { + "id": 4285, + "nodeType": "Block", + "src": "2447:33:20", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 4277, + "id": 4284, + "nodeType": "Return", + "src": "2461:8:20" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4287, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2493:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "id": 4289, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2514:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4288, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4383 + ], + "referencedDeclaration": 4383, + "src": "2505:8:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2505:17:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2493:29:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4297, + "nodeType": "IfStatement", + "src": "2489:83:20", + "trueBody": { + "id": 4296, + "nodeType": "Block", + "src": "2524:48:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4293, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2553:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4292, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4353 + ], + "referencedDeclaration": 4353, + "src": "2545:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2545:16:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4277, + "id": 4295, + "nodeType": "Return", + "src": "2538:23:20" + } + ] + } + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4299, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2597:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4298, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4353 + ], + "referencedDeclaration": 4353, + "src": "2589:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2589:16:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4301, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2609:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 4303, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2632:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4302, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4368 + ], + "referencedDeclaration": 4368, + "src": "2621:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2621:19:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2609:31:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4306, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2608:33:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2589:52:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4308, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2588:54:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4310, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2655:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4309, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4383 + ], + "referencedDeclaration": 4383, + "src": "2646:8:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2646:17:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 4313, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2677:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4312, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4368 + ], + "referencedDeclaration": 4368, + "src": "2666:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2666:19:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2646:39:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4316, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2645:41:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2588:98:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4277, + "id": 4318, + "nodeType": "Return", + "src": "2581:105:20" + } + ] + }, + "documentation": { + "id": 4264, + "nodeType": "StructuredDocumentation", + "src": "2177:39:20", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 4320, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 4273, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2358:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4274, + "kind": "modifierInvocation", + "modifierName": { + "id": 4272, + "name": "validToken", + "nameLocations": [ + "2347:10:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2347:10:20" + }, + "nodeType": "ModifierInvocation", + "src": "2347:19:20" + } + ], + "name": "vestedPayoutAtTime", + "nameLocation": "2230:18:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4271, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 4270, + "name": "ERC5725", + "nameLocations": [ + "2330:7:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "2330:7:20" + } + ], + "src": "2321:17:20" + }, + "parameters": { + "id": 4269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4266, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2257:7:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2249:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2249:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4268, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "2274:9:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2266:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2266:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2248:36:20" + }, + "returnParameters": { + "id": 4277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4276, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2392:6:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2384:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2384:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2383:16:20" + }, + "scope": 4398, + "src": "2221:472:20", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3968 + ], + "body": { + "id": 4337, + "nodeType": "Block", + "src": "2822:65:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 4331, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "2847:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4333, + "indexExpression": { + "id": 4332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "2859:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2847:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4334, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2868:11:20", + "memberName": "payoutToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 4143, + "src": "2847:32:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 4330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2839:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4329, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2839:7:20", + "typeDescriptions": {} + } + }, + "id": 4335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2839:41:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4328, + "id": 4336, + "nodeType": "Return", + "src": "2832:48:20" + } + ] + }, + "documentation": { + "id": 4321, + "nodeType": "StructuredDocumentation", + "src": "2699:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "2751:12:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4325, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2795:8:20" + }, + "parameters": { + "id": 4324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4323, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2772:7:20", + "nodeType": "VariableDeclaration", + "scope": 4338, + "src": "2764:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2764:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2763:17:20" + }, + "returnParameters": { + "id": 4328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4327, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4338, + "src": "2813:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2813:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2812:9:20" + }, + "scope": 4398, + "src": "2742:145:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3976 + ], + "body": { + "id": 4352, + "nodeType": "Block", + "src": "3011:51:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4347, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3028:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4349, + "indexExpression": { + "id": 4348, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4341, + "src": "3040:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3028:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3049:6:20", + "memberName": "payout", + "nodeType": "MemberAccess", + "referencedDeclaration": 4146, + "src": "3028:27:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4346, + "id": 4351, + "nodeType": "Return", + "src": "3021:34:20" + } + ] + }, + "documentation": { + "id": 4339, + "nodeType": "StructuredDocumentation", + "src": "2893:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4353, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "2945:7:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4343, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2984:8:20" + }, + "parameters": { + "id": 4342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4341, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2961:7:20", + "nodeType": "VariableDeclaration", + "scope": 4353, + "src": "2953:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2953:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2952:17:20" + }, + "returnParameters": { + "id": 4346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4345, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4353, + "src": "3002:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3002:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3001:9:20" + }, + "scope": 4398, + "src": "2936:126:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3984 + ], + "body": { + "id": 4367, + "nodeType": "Block", + "src": "3189:54:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4362, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3206:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4364, + "indexExpression": { + "id": 4363, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4356, + "src": "3218:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3206:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4365, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3227:9:20", + "memberName": "startTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4149, + "src": "3206:30:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4361, + "id": 4366, + "nodeType": "Return", + "src": "3199:37:20" + } + ] + }, + "documentation": { + "id": 4354, + "nodeType": "StructuredDocumentation", + "src": "3068:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4368, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "3120:10:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4358, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3162:8:20" + }, + "parameters": { + "id": 4357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4356, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3139:7:20", + "nodeType": "VariableDeclaration", + "scope": 4368, + "src": "3131:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3131:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3130:17:20" + }, + "returnParameters": { + "id": 4361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4360, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4368, + "src": "3180:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3180:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3179:9:20" + }, + "scope": 4398, + "src": "3111:132:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3992 + ], + "body": { + "id": 4382, + "nodeType": "Block", + "src": "3368:52:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4377, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3385:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4379, + "indexExpression": { + "id": 4378, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "3397:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3385:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:7:20", + "memberName": "endTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4152, + "src": "3385:28:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4376, + "id": 4381, + "nodeType": "Return", + "src": "3378:35:20" + } + ] + }, + "documentation": { + "id": 4369, + "nodeType": "StructuredDocumentation", + "src": "3249:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4383, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "3301:8:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4373, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3341:8:20" + }, + "parameters": { + "id": 4372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4371, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3318:7:20", + "nodeType": "VariableDeclaration", + "scope": 4383, + "src": "3310:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3309:17:20" + }, + "returnParameters": { + "id": 4376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4375, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4383, + "src": "3359:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3359:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3358:9:20" + }, + "scope": 4398, + "src": "3292:128:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4396, + "nodeType": "Block", + "src": "3676:50:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4391, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3693:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4393, + "indexExpression": { + "id": 4392, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4386, + "src": "3705:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3693:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4394, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3714:5:20", + "memberName": "cliff", + "nodeType": "MemberAccess", + "referencedDeclaration": 4155, + "src": "3693:26:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4390, + "id": 4395, + "nodeType": "Return", + "src": "3686:33:20" + } + ] + }, + "documentation": { + "id": 4384, + "nodeType": "StructuredDocumentation", + "src": "3426:180:20", + "text": " @dev Internal function to get the cliff time of a given linear vesting NFT\n @param tokenId to check\n @return uint256 the cliff time in seconds" + }, + "id": 4397, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_cliff", + "nameLocation": "3620:6:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4386, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3635:7:20", + "nodeType": "VariableDeclaration", + "scope": 4397, + "src": "3627:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3626:17:20" + }, + "returnParameters": { + "id": 4390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4389, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4397, + "src": "3667:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3667:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3666:9:20" + }, + "scope": 4398, + "src": "3611:115:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4399, + "src": "88:3640:20", + "usedErrors": [] + } + ], + "src": "36:3693:20" + }, + "id": 20 + }, + "contracts/reference/VestingNFT.sol": { + "ast": { + "absolutePath": "contracts/reference/VestingNFT.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ], + "VestingNFT": [ + 4608 + ] + }, + "id": 4609, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4400, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:21" + }, + { + "absolutePath": "contracts/ERC5725.sol", + "file": "../ERC5725.sol", + "id": 4401, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4609, + "sourceUnit": 3994, + "src": "62:24:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4402, + "name": "ERC5725", + "nameLocations": [ + "111:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "111:7:21" + }, + "id": 4403, + "nodeType": "InheritanceSpecifier", + "src": "111:7:21" + } + ], + "canonicalName": "VestingNFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4608, + "linearizedBaseContracts": [ + 4608, + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "VestingNFT", + "nameLocation": "97:10:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4407, + "libraryName": { + "id": 4404, + "name": "SafeERC20", + "nameLocations": [ + "131:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "131:9:21" + }, + "nodeType": "UsingForDirective", + "src": "125:27:21", + "typeName": { + "id": 4406, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4405, + "name": "IERC20", + "nameLocations": [ + "145:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "145:6:21" + }, + "referencedDeclaration": 777, + "src": "145:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "VestingNFT.VestDetails", + "id": 4420, + "members": [ + { + "constant": false, + "id": 4410, + "mutability": "mutable", + "name": "payoutToken", + "nameLocation": "194:11:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "187:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4409, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4408, + "name": "IERC20", + "nameLocations": [ + "187:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "187:6:21" + }, + "referencedDeclaration": 777, + "src": "187:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4413, + "mutability": "mutable", + "name": "payout", + "nameLocation": "245:6:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "237:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "237:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4416, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "312:9:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "304:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4415, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "304:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4419, + "mutability": "mutable", + "name": "endTime", + "nameLocation": "368:7:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "360:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4418, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "360:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "VestDetails", + "nameLocation": "165:11:21", + "nodeType": "StructDefinition", + "scope": 4608, + "src": "158:250:21", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "03101bfd", + "id": 4425, + "mutability": "mutable", + "name": "vestDetails", + "nameLocation": "452:11:21", + "nodeType": "VariableDeclaration", + "scope": 4608, + "src": "413:50:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails)" + }, + "typeName": { + "id": 4424, + "keyType": { + "id": 4421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "413:31:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails)" + }, + "valueType": { + "id": 4423, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4422, + "name": "VestDetails", + "nameLocations": [ + "432:11:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4420, + "src": "432:11:21" + }, + "referencedDeclaration": 4420, + "src": "432:11:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage_ptr", + "typeString": "struct VestingNFT.VestDetails" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4426, + "nodeType": "StructuredDocumentation", + "src": "515:34:21", + "text": "@dev tracker of current NFT id" + }, + "id": 4428, + "mutability": "mutable", + "name": "_tokenIdTracker", + "nameLocation": "570:15:21", + "nodeType": "VariableDeclaration", + "scope": 4608, + "src": "554:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "554:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4440, + "nodeType": "Block", + "src": "769:2:21", + "statements": [] + }, + "documentation": { + "id": 4429, + "nodeType": "StructuredDocumentation", + "src": "592:97:21", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token." + }, + "id": 4441, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4436, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4431, + "src": "755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4437, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "761:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4438, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4435, + "name": "ERC721", + "nameLocations": [ + "748:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "748:6:21" + }, + "nodeType": "ModifierInvocation", + "src": "748:20:21" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4431, + "mutability": "mutable", + "name": "name", + "nameLocation": "720:4:21", + "nodeType": "VariableDeclaration", + "scope": 4441, + "src": "706:18:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4430, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "706:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4433, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "740:6:21", + "nodeType": "VariableDeclaration", + "scope": 4441, + "src": "726:20:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4432, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "726:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "705:42:21" + }, + "returnParameters": { + "id": 4439, + "nodeType": "ParameterList", + "parameters": [], + "src": "769:0:21" + }, + "scope": 4608, + "src": "694:77:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4514, + "nodeType": "Block", + "src": "1319:557:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4455, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "1337:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1351:1:21", + "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": 4457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1343:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1343:7:21", + "typeDescriptions": {} + } + }, + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1343:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1337:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:24:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + }, + "value": "to cannot be address 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + } + ], + "id": 4454, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1329:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1329:51:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4463, + "nodeType": "ExpressionStatement", + "src": "1329:51:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4465, + "name": "releaseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "1398:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 4466, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1417:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1423:9:21", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1417:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1398:34:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "72656c65617365206d75737420626520696e20667574757265", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1434:27:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "typeString": "literal_string \"release must be in future\"" + }, + "value": "release must be in future" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "typeString": "literal_string \"release must be in future\"" + } + ], + "id": 4464, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1390:72:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4471, + "nodeType": "ExpressionStatement", + "src": "1390:72:21" + }, + { + "assignments": [ + 4473 + ], + "declarations": [ + { + "constant": false, + "id": 4473, + "mutability": "mutable", + "name": "newTokenId", + "nameLocation": "1481:10:21", + "nodeType": "VariableDeclaration", + "scope": 4514, + "src": "1473:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1473:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4475, + "initialValue": { + "id": 4474, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1494:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1473:36:21" + }, + { + "expression": { + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4476, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "1520:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4478, + "indexExpression": { + "id": 4477, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1532:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1520:23:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4480, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4451, + "src": "1585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "id": 4481, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4446, + "src": "1612:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "expression": { + "id": 4484, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1651:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1657:9:21", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1651:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1643:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 4482, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1643:7:21", + "typeDescriptions": {} + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1643:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "id": 4487, + "name": "releaseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "1690:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "id": 4479, + "name": "VestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4420, + "src": "1546:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_VestDetails_$4420_storage_ptr_$", + "typeString": "type(struct VestingNFT.VestDetails storage pointer)" + } + }, + "id": 4488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "1572:11:21", + "1604:6:21", + "1632:9:21", + "1681:7:21" + ], + "names": [ + "payoutToken", + "payout", + "startTime", + "endTime" + ], + "nodeType": "FunctionCall", + "src": "1546:171:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_memory_ptr", + "typeString": "struct VestingNFT.VestDetails memory" + } + }, + "src": "1520:197:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4490, + "nodeType": "ExpressionStatement", + "src": "1520:197:21" + }, + { + "expression": { + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1728:17:21", + "subExpression": { + "id": 4491, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1728:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4493, + "nodeType": "ExpressionStatement", + "src": "1728:17:21" + }, + { + "expression": { + "arguments": [ + { + "id": 4495, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "1761:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4496, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1765:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4494, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "1755:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1755:21:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4498, + "nodeType": "ExpressionStatement", + "src": "1755:21:21" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4505, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1835:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1839:6:21", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1835:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4509, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1855:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VestingNFT_$4608", + "typeString": "contract VestingNFT" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VestingNFT_$4608", + "typeString": "contract VestingNFT" + } + ], + "id": 4508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1847:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1847:7:21", + "typeDescriptions": {} + } + }, + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1847:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4511, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4446, + "src": "1862:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4501, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4500, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "1793:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1793:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4499, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "1786:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1786:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1818:16:21", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 896, + "src": "1786:48:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1786:83:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4513, + "nodeType": "ExpressionStatement", + "src": "1786:83:21" + } + ] + }, + "documentation": { + "id": 4442, + "nodeType": "StructuredDocumentation", + "src": "777:400:21", + "text": " @notice Creates a new vesting NFT and mints it\n @dev Token amount should be approved to be transferred by this contract before executing create\n @param to The recipient of the NFT\n @param amount The total assets to be locked over time\n @param releaseTimestamp When the full amount of tokens get released\n @param token The ERC20 token to vest over time" + }, + "functionSelector": "746b5d61", + "id": 4515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "create", + "nameLocation": "1191:6:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4444, + "mutability": "mutable", + "name": "to", + "nameLocation": "1215:2:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1207:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4443, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1207:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4446, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1235:6:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1227:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "mutability": "mutable", + "name": "releaseTimestamp", + "nameLocation": "1259:16:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1251:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4447, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1251:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4451, + "mutability": "mutable", + "name": "token", + "nameLocation": "1292:5:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1285:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4450, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4449, + "name": "IERC20", + "nameLocations": [ + "1285:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1285:6:21" + }, + "referencedDeclaration": 777, + "src": "1285:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "1197:106:21" + }, + "returnParameters": { + "id": 4453, + "nodeType": "ParameterList", + "parameters": [], + "src": "1319:0:21" + }, + "scope": 4608, + "src": "1182:694:21", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3832 + ], + "body": { + "id": 4543, + "nodeType": "Block", + "src": "2109:118:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4530, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "2123:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [ + { + "id": 4532, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2145:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4531, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4607 + ], + "referencedDeclaration": 4607, + "src": "2136:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2136:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2123:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4540, + "nodeType": "IfStatement", + "src": "2119:84:21", + "trueBody": { + "id": 4539, + "nodeType": "Block", + "src": "2155:48:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4536, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2184:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4535, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4577 + ], + "referencedDeclaration": 4577, + "src": "2176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2176:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4529, + "id": 4538, + "nodeType": "Return", + "src": "2169:23:21" + } + ] + } + }, + { + "expression": { + "hexValue": "30", + "id": 4541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2219:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 4529, + "id": 4542, + "nodeType": "Return", + "src": "2212:8:21" + } + ] + }, + "documentation": { + "id": 4516, + "nodeType": "StructuredDocumentation", + "src": "1882:39:21", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 4544, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 4525, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2063:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4526, + "kind": "modifierInvocation", + "modifierName": { + "id": 4524, + "name": "validToken", + "nameLocations": [ + "2052:10:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2052:10:21" + }, + "nodeType": "ModifierInvocation", + "src": "2052:19:21" + } + ], + "name": "vestedPayoutAtTime", + "nameLocation": "1935:18:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4523, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 4522, + "name": "ERC5725", + "nameLocations": [ + "2035:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "2035:7:21" + } + ], + "src": "2026:17:21" + }, + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4518, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1962:7:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "1954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4520, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1979:9:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "1971:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1971:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1953:36:21" + }, + "returnParameters": { + "id": 4529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4528, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2097:6:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "2089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2088:16:21" + }, + "scope": 4608, + "src": "1926:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3968 + ], + "body": { + "id": 4561, + "nodeType": "Block", + "src": "2356:65:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 4555, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2381:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4557, + "indexExpression": { + "id": 4556, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4547, + "src": "2393:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2381:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4558, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2402:11:21", + "memberName": "payoutToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 4410, + "src": "2381:32:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2373:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2373:7:21", + "typeDescriptions": {} + } + }, + "id": 4559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2373:41:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4552, + "id": 4560, + "nodeType": "Return", + "src": "2366:48:21" + } + ] + }, + "documentation": { + "id": 4545, + "nodeType": "StructuredDocumentation", + "src": "2233:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4562, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "2285:12:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4549, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2329:8:21" + }, + "parameters": { + "id": 4548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4547, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2306:7:21", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "2298:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2298:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2297:17:21" + }, + "returnParameters": { + "id": 4552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4551, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "2347:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2347:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2346:9:21" + }, + "scope": 4608, + "src": "2276:145:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3976 + ], + "body": { + "id": 4576, + "nodeType": "Block", + "src": "2545:51:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4571, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2562:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4573, + "indexExpression": { + "id": 4572, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4565, + "src": "2574:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2562:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2583:6:21", + "memberName": "payout", + "nodeType": "MemberAccess", + "referencedDeclaration": 4413, + "src": "2562:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4570, + "id": 4575, + "nodeType": "Return", + "src": "2555:34:21" + } + ] + }, + "documentation": { + "id": 4563, + "nodeType": "StructuredDocumentation", + "src": "2427:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "2479:7:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4567, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2518:8:21" + }, + "parameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2495:7:21", + "nodeType": "VariableDeclaration", + "scope": 4577, + "src": "2487:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2486:17:21" + }, + "returnParameters": { + "id": 4570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4569, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4577, + "src": "2536:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2536:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2535:9:21" + }, + "scope": 4608, + "src": "2470:126:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3984 + ], + "body": { + "id": 4591, + "nodeType": "Block", + "src": "2723:54:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4586, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2740:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4588, + "indexExpression": { + "id": 4587, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4580, + "src": "2752:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2740:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4589, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2761:9:21", + "memberName": "startTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4416, + "src": "2740:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4585, + "id": 4590, + "nodeType": "Return", + "src": "2733:37:21" + } + ] + }, + "documentation": { + "id": 4578, + "nodeType": "StructuredDocumentation", + "src": "2602:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "2654:10:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4582, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2696:8:21" + }, + "parameters": { + "id": 4581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4580, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2673:7:21", + "nodeType": "VariableDeclaration", + "scope": 4592, + "src": "2665:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2665:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2664:17:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4592, + "src": "2714:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2714:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2713:9:21" + }, + "scope": 4608, + "src": "2645:132:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3992 + ], + "body": { + "id": 4606, + "nodeType": "Block", + "src": "2902:52:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4601, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2919:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4603, + "indexExpression": { + "id": 4602, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4595, + "src": "2931:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2919:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2940:7:21", + "memberName": "endTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4419, + "src": "2919:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4600, + "id": 4605, + "nodeType": "Return", + "src": "2912:35:21" + } + ] + }, + "documentation": { + "id": 4593, + "nodeType": "StructuredDocumentation", + "src": "2783:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4607, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "2835:8:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4597, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2875:8:21" + }, + "parameters": { + "id": 4596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2852:7:21", + "nodeType": "VariableDeclaration", + "scope": 4607, + "src": "2844:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2844:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2843:17:21" + }, + "returnParameters": { + "id": 4600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4599, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4607, + "src": "2893:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2893:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2892:9:21" + }, + "scope": 4608, + "src": "2826:128:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4609, + "src": "88:2868:21", + "usedErrors": [] + } + ], + "src": "36:2921:21" + }, + "id": 21 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_157": { + "entryPoint": null, + "id": 157, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 376, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 502, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 247, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 99, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 635, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1067, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1028, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 902, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1222, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 332, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 693, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 193, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1160, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 646, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 146, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 119, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 124, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 114, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 109, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 129, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1147, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1000, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 796, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 952, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 995, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x17EC CODESIZE SUB DUP1 PUSH3 0x17EC DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1F6 JUMP JUMPDEST DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x48 SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x5A SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP POP POP PUSH3 0x5AD 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 PUSH3 0xCC DUP3 PUSH3 0x81 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xEE JUMPI PUSH3 0xED PUSH3 0x92 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x103 PUSH3 0x63 JUMP JUMPDEST SWAP1 POP PUSH3 0x111 DUP3 DUP3 PUSH3 0xC1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x134 JUMPI PUSH3 0x133 PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x13F DUP3 PUSH3 0x81 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x16C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x14F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18F PUSH3 0x189 DUP5 PUSH3 0x116 JUMP JUMPDEST PUSH3 0xF7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1AE JUMPI PUSH3 0x1AD PUSH3 0x7C JUMP JUMPDEST JUMPDEST PUSH3 0x1BB DUP5 DUP3 DUP6 PUSH3 0x14C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DB JUMPI PUSH3 0x1DA PUSH3 0x77 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1ED DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x178 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x210 JUMPI PUSH3 0x20F PUSH3 0x6D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x231 JUMPI PUSH3 0x230 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x23F DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x263 JUMPI PUSH3 0x262 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x271 DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2CE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E4 JUMPI PUSH3 0x2E3 PUSH3 0x286 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 PUSH3 0x34E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x30F JUMP JUMPDEST PUSH3 0x35A DUP7 DUP4 PUSH3 0x30F 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 PUSH3 0x3A7 PUSH3 0x3A1 PUSH3 0x39B DUP5 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x37C JUMP JUMPDEST PUSH3 0x372 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C3 DUP4 PUSH3 0x386 JUMP JUMPDEST PUSH3 0x3DB PUSH3 0x3D2 DUP3 PUSH3 0x3AE JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x31C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F2 PUSH3 0x3E3 JUMP JUMPDEST PUSH3 0x3FF DUP2 DUP5 DUP5 PUSH3 0x3B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x427 JUMPI PUSH3 0x41B PUSH1 0x0 DUP3 PUSH3 0x3E8 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x476 JUMPI PUSH3 0x440 DUP2 PUSH3 0x2EA JUMP JUMPDEST PUSH3 0x44B DUP5 PUSH3 0x2FF JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x473 PUSH3 0x46A DUP6 PUSH3 0x2FF JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x404 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 PUSH3 0x49B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4B6 DUP4 DUP4 PUSH3 0x488 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D1 DUP3 PUSH3 0x27B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4ED JUMPI PUSH3 0x4EC PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x4F9 DUP3 SLOAD PUSH3 0x2B5 JUMP JUMPDEST PUSH3 0x506 DUP3 DUP3 DUP6 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x53E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x529 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x535 DUP6 DUP3 PUSH3 0x4A8 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x54E DUP7 PUSH3 0x2EA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x578 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 PUSH3 0x551 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x598 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x594 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x488 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 PUSH2 0x122F DUP1 PUSH3 0x5BD 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 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xD8D 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 0x2B1 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE 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 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xDED JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xD8D 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 0x427 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 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 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x616 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP1 PUSH2 0xF25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67C SWAP1 PUSH2 0xFB7 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F6 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DF SWAP1 PUSH2 0x1023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x862 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D1 SWAP1 PUSH2 0x1147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E5 DUP4 DUP4 DUP4 PUSH2 0xA72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA59 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA6C DUP5 DUP5 DUP5 PUSH2 0xA77 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA9B 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 0xADE DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0xAE8 DUP2 DUP6 PUSH2 0xA87 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xB01 DUP2 PUSH2 0xAC2 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 0xB26 DUP2 DUP5 PUSH2 0xAD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP3 PUSH2 0xB33 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB53 JUMP JUMPDEST DUP2 EQ PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB8B DUP2 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP2 EQ PUSH2 0xBAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBC1 DUP2 PUSH2 0xB9B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBDE JUMPI PUSH2 0xBDD PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBEC DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBFD DUP6 DUP3 DUP7 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xC07 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC61 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC80 JUMPI PUSH2 0xC7F PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8E DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC9F DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCB0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCEB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD15 DUP5 DUP3 DUP6 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD43 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD54 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xDA5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDB8 JUMPI PUSH2 0xDB7 PUSH2 0xD5E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDF8 DUP3 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP PUSH2 0xE03 DUP4 PUSH2 0xB91 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1A PUSH2 0xDBE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP3 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 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 0xEAC DUP2 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0F PUSH1 0x24 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xF1A DUP3 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 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 0xF3E DUP2 PUSH2 0xF02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA1 PUSH1 0x22 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xFAC DUP3 PUSH2 0xF45 JUMP JUMPDEST PUSH1 0x40 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 0xFD0 DUP2 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100D PUSH1 0x1D DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x1018 DUP3 PUSH2 0xFD7 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 0x103C DUP2 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x109F PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x10AA DUP3 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 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 0x10CE DUP2 PUSH2 0x1092 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1131 PUSH1 0x23 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x113C DUP3 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x40 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 0x1160 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11C3 PUSH1 0x26 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x11CE DUP3 PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x40 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 0x11F2 DUP2 PUSH2 0x11B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE DUP9 0xB2 PUSH20 0x199F085E1921EC1A1FA55ABDEE2E425960BDA675 0xA5 0x1F 0xAC DUP6 0xAC 0xD9 SWAP8 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1401:11610:1:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2050:5;2042;:13;;;;;;:::i;:::-;;2075:7;2065;:17;;;;;;:::i;:::-;;1976:113;;1401:11610;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;1401:11610:1:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_698": { + "entryPoint": 2679, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_633": { + "entryPoint": 1447, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 2674, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 1439, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_676": { + "entryPoint": 1904, + "id": 676, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_459": { + "entryPoint": 2044, + "id": 459, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_254": { + "entryPoint": 1304, + "id": 254, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_279": { + "entryPoint": 776, + "id": 279, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_211": { + "entryPoint": 932, + "id": 211, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_187": { + "entryPoint": 868, + "id": 187, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_382": { + "entryPoint": 1150, + "id": 382, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_341": { + "entryPoint": 877, + "id": 341, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_167": { + "entryPoint": 630, + "id": 167, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_177": { + "entryPoint": 1004, + "id": 177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_197": { + "entryPoint": 811, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_312": { + "entryPoint": 821, + "id": 312, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_236": { + "entryPoint": 1269, + "id": 236, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 2940, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2994, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3313, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3358, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3015, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3091, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2771, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4388, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3988, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4096, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4534, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4242, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3842, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3696, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3133, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3271, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3106, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2828, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4423, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4023, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4131, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4569, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4277, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3877, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3148, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2684, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3079, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2867, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2961, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3258, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2712, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3518, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3422, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2862, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2754, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4309, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 3909, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 4055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4455, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4163, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 3763, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2917, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2971, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:13699:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:22", + "type": "" + } + ], + "src": "7:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:22", + "type": "" + } + ], + "src": "112:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:22", + "statements": [] + }, + "src": "378:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:22", + "type": "" + } + ], + "src": "287:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:22", + "type": "" + } + ], + "src": "539:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:22", + "type": "" + } + ], + "src": "647:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:22", + "type": "" + } + ], + "src": "1030:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:22", + "type": "" + } + ], + "src": "1349:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:22", + "type": "" + } + ], + "src": "1676:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:22", + "type": "" + } + ], + "src": "1808:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:22" + }, + "nodeType": "YulIf", + "src": "1963:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:22", + "type": "" + } + ], + "src": "1910:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:22", + "type": "" + } + ], + "src": "2038:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:22", + "type": "" + } + ], + "src": "2183:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:22" + }, + "nodeType": "YulIf", + "src": "2319:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:22", + "type": "" + } + ], + "src": "2266:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:22", + "type": "" + } + ], + "src": "2394:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:22" + }, + "nodeType": "YulIf", + "src": "2632:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:22", + "type": "" + } + ], + "src": "2539:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:22", + "type": "" + } + ], + "src": "3019:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:22", + "type": "" + } + ], + "src": "3115:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:22", + "type": "" + } + ], + "src": "3230:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:22", + "type": "" + } + ], + "src": "3446:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:22", + "type": "" + } + ], + "src": "3570:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:22" + }, + "nodeType": "YulIf", + "src": "3908:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:22", + "type": "" + } + ], + "src": "3798:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:22", + "type": "" + } + ], + "src": "4423:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:22" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:22", + "type": "" + } + ], + "src": "4515:112:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:22" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:22", + "type": "" + } + ], + "src": "4633:214:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:22" + }, + "nodeType": "YulIf", + "src": "4929:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:22", + "type": "" + } + ], + "src": "4853:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:22" + }, + "nodeType": "YulIf", + "src": "5281:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:22", + "type": "" + } + ], + "src": "5188:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:22" + }, + "nodeType": "YulIf", + "src": "5993:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:22" + }, + "nodeType": "YulIf", + "src": "6084:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:22", + "type": "" + } + ], + "src": "5854:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6208:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6225:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6228:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6218:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6218:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6322:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6325:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6315:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6315:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6315:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6346:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6349:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6339:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6339:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6339:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6180:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6410:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6420:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6443:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6425:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6425:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6420:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6454:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6477:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6459:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6459:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6454:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6488:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6499:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6502:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6495:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6495:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6488:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6528:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "6530:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6530:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6530:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6520:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6523:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6517:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6517:10:22" + }, + "nodeType": "YulIf", + "src": "6514:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "6397:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "6400:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "6406:3:22", + "type": "" + } + ], + "src": "6366:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6669:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6691:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6699:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6687:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6687:14:22" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6703:34:22", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6680:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6680:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6680:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6759:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6767:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6755:15:22" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6772:7:22", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6748:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6748:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6748:32:22" + } + ] + }, + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6661:6:22", + "type": "" + } + ], + "src": "6563:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6939:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6949:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7015:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7020:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6956:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "6956:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6949:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7121:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulIdentifier", + "src": "7032:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "7032:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7032:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "7134:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7145:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7150:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7141:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7141:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7134:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6927:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6935:3:22", + "type": "" + } + ], + "src": "6793:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7336:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7346:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7358:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7369:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7354:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7354:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7346:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7393:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7404:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7389:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7389:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7412:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7418:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7408:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7408:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7382:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7382:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7382:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "7438:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7572:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7446:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "7446:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7438:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7316:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7331:4:22", + "type": "" + } + ], + "src": "7165:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7696:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7718:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7726:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7714:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7714:14:22" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7730:34:22", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7707:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7707:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7707:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7786:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7794:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7782:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7782:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7799:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7775:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7775:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7775:31:22" + } + ] + }, + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7688:6:22", + "type": "" + } + ], + "src": "7590:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7965:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7975:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8041:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7982:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "7982:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7975:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8147:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulIdentifier", + "src": "8058:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "8058:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8058:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "8160:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8171:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8176:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8167:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8167:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8160:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7953:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7961:3:22", + "type": "" + } + ], + "src": "7819:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8362:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8372:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8384:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8395:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8380:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8380:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8372:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8415:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8438:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8444:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8434:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8408:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8408:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8408:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "8464:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8598:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8472:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "8472:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8464:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8342:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8357:4:22", + "type": "" + } + ], + "src": "8191:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8722:115:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8744:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8752:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8740:14:22" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8756:34:22", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8733:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8733:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8733:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8812:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8820:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8808:15:22" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8825:4:22", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8801:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8801:29:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8801:29:22" + } + ] + }, + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8714:6:22", + "type": "" + } + ], + "src": "8616:221:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8989:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8999:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9065:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9070:2:22", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9006:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9006:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8999:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9171:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulIdentifier", + "src": "9082:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "9082:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9082:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "9184:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9195:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9200:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9191:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9191:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9184:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8977:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8985:3:22", + "type": "" + } + ], + "src": "8843:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9386:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9396:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9408:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9419:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9404:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9404:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9396:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9443:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9454:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9439:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9439:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9462:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9468:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9458:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9458:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9432:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9432:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9432:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "9488:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9622:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9496:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "9496:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9488:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9366:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9381:4:22", + "type": "" + } + ], + "src": "9215:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9746:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9768:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9776:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9764:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9764:14:22" + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9780:31:22", + "type": "", + "value": "ERC20: insufficient allowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9757:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9757:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9757:55:22" + } + ] + }, + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9738:6:22", + "type": "" + } + ], + "src": "9640:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9971:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9981:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10047:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10052:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9988:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9988:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9981:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10153:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulIdentifier", + "src": "10064:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10064:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10064:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10166:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10177:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10182:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10173:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10173:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10166:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9959:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9967:3:22", + "type": "" + } + ], + "src": "9825:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10368:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10378:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10401:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10386:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10378:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10425:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10436:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10421:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10421:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10444:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10450:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10440:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10440:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10414:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10414:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10414:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10470:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10604:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10478:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10478:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10470:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10348:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10363:4:22", + "type": "" + } + ], + "src": "10197:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10728:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10750:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10758:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10746:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10746:14:22" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10762:34:22", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10739:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10739:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10739:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10818:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10826:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10814:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10814:15:22" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10831:7:22", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10807:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10807:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10807:32:22" + } + ] + }, + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10720:6:22", + "type": "" + } + ], + "src": "10622:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10998:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11008:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11074:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11079:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11015:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11015:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11008:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11180:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulIdentifier", + "src": "11091:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11091:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11091:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11193:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11204:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11209:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11200:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11200:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11193:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10986:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10994:3:22", + "type": "" + } + ], + "src": "10852:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11395:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11405:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11417:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11428:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11413:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11405:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11452:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11463:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11448:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11448:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11471:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11477:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11467:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11467:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11441:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11441:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11441:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11497:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11631:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11505:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11505:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11497:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11375:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11390:4:22", + "type": "" + } + ], + "src": "11224:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11755:116:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11777:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11785:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11773:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11773:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11789:34:22", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11766:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11766:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11766:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11845:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11853:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11841:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11841:15:22" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11858:5:22", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11834:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11834:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11834:30:22" + } + ] + }, + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11747:6:22", + "type": "" + } + ], + "src": "11649:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12023:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12033:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12099:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12104:2:22", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12040:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12040:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12033:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12205:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulIdentifier", + "src": "12116:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12116:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12116:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12218:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12229:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12234:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12225:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12225:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12218:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12011:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12019:3:22", + "type": "" + } + ], + "src": "11877:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12420:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12430:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12442:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12453:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12438:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12430:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12477:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12488:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12473:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12473:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12496:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12502:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12492:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12492:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12466:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12466:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12466:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "12522:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12656:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12530:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "12530:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12522:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12400:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12415:4:22", + "type": "" + } + ], + "src": "12249:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12780:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12802:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12798:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12798:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12814:34:22", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12791:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12791:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12791:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12870:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12878:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12866:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12866:15:22" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12883:8:22", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12859:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12859:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12859:33:22" + } + ] + }, + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12772:6:22", + "type": "" + } + ], + "src": "12674:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13051:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13061:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13127:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13132:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13068:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13068:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13061:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13233:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulIdentifier", + "src": "13144:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13144:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13144:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13246:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13257:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13262:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13253:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13253:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13246:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13039:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13047:3:22", + "type": "" + } + ], + "src": "12905:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13448:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13458:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13470:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13481:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13466:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13466:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13458:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13505:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13516:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13501:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13524:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13530:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13520:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13520:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13494:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13494:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13494:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13550:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13684:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13558:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13558:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13550:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13428:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13443:4:22", + "type": "" + } + ], + "src": "13277:419:22" + } + ] + }, + "contents": "{\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 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 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 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 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_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 abi_decode_tuple_t_addresst_addresst_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_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 function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(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_address(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 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 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 store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__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_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__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_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__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_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__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_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__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_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__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_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__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_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xD8D 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 0x2B1 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE 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 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xDED JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xD8D 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 0x427 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 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 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x616 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP1 PUSH2 0xF25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67C SWAP1 PUSH2 0xFB7 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F6 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DF SWAP1 PUSH2 0x1023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x862 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D1 SWAP1 PUSH2 0x1147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E5 DUP4 DUP4 DUP4 PUSH2 0xA72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA59 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA6C DUP5 DUP5 DUP5 PUSH2 0xA77 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA9B 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 0xADE DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0xAE8 DUP2 DUP6 PUSH2 0xA87 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xB01 DUP2 PUSH2 0xAC2 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 0xB26 DUP2 DUP5 PUSH2 0xAD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP3 PUSH2 0xB33 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB53 JUMP JUMPDEST DUP2 EQ PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB8B DUP2 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP2 EQ PUSH2 0xBAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBC1 DUP2 PUSH2 0xB9B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBDE JUMPI PUSH2 0xBDD PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBEC DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBFD DUP6 DUP3 DUP7 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xC07 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC61 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC80 JUMPI PUSH2 0xC7F PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8E DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC9F DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCB0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCEB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD15 DUP5 DUP3 DUP6 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD43 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD54 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xDA5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDB8 JUMPI PUSH2 0xDB7 PUSH2 0xD5E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDF8 DUP3 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP PUSH2 0xE03 DUP4 PUSH2 0xB91 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1A PUSH2 0xDBE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP3 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 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 0xEAC DUP2 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0F PUSH1 0x24 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xF1A DUP3 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 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 0xF3E DUP2 PUSH2 0xF02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA1 PUSH1 0x22 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xFAC DUP3 PUSH2 0xF45 JUMP JUMPDEST PUSH1 0x40 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 0xFD0 DUP2 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100D PUSH1 0x1D DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x1018 DUP3 PUSH2 0xFD7 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 0x103C DUP2 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x109F PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x10AA DUP3 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 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 0x10CE DUP2 PUSH2 0x1092 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1131 PUSH1 0x23 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x113C DUP3 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x40 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 0x1160 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11C3 PUSH1 0x26 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x11CE DUP3 PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x40 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 0x11F2 DUP2 PUSH2 0x11B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE DUP9 0xB2 PUSH20 0x199F085E1921EC1A1FA55ABDEE2E425960BDA675 0xA5 0x1F 0xAC DUP6 0xAC 0xD9 SWAP8 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1401:11610:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3242:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3091:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5871:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3974:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2154:98;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;4530:13;4546:12;:10;:12::i;:::-;4530:28;;4568:32;4577:5;4584:7;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;:::o;3242:106::-;3303:7;3329:12;;3322:19;;3242:106;:::o;5190:286::-;5317:4;5333:15;5351:12;:10;:12::i;:::-;5333:30;;5373:38;5389:4;5395:7;5404:6;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;5465:4;5458:11;;;5190:286;;;;;:::o;3091:91::-;3149:5;3173:2;3166:9;;3091:91;:::o;5871:234::-;5959:4;5975:13;5991:12;:10;:12::i;:::-;5975:28;;6013:64;6022:5;6029:7;6066:10;6038:25;6048:5;6055:7;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;:::-;6094:4;6087:11;;;5871:234;;;;:::o;3406:125::-;3480:7;3506:9;:18;3516:7;3506:18;;;;;;;;;;;;;;;;3499:25;;3406:125;;;:::o;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:102;:::o;6592:427::-;6685:4;6701:13;6717:12;:10;:12::i;:::-;6701:28;;6739:24;6766:25;6776:5;6783:7;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;:::-;7008:4;7001:11;;;;6592:427;;;;:::o;3727:189::-;3806:4;3822:13;3838:12;:10;:12::i;:::-;3822:28;;3860;3870:5;3877:2;3881:6;3860:9;:28::i;:::-;3905:4;3898:11;;;3727:189;;;;:::o;3974:149::-;4063:7;4089:11;:18;4101:5;4089:18;;;;;;;;;;;;;;;:27;4108:7;4089:27;;;;;;;;;;;;;;;;4082:34;;3974:149;;;;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;10504:370:1:-;10652:1;10635:19;;:5;:19;;;10627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:1;10713:21;;:7;:21;;;10705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:6;10784:11;:18;10796:5;10784:18;;;;;;;;;;;;;;;:27;10803:7;10784:27;;;;;;;;;;;;;;;:36;;;;10851:7;10835:32;;10844:5;10835:32;;;10860:6;10835:32;;;;;;:::i;:::-;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;11371:17;11351:16;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11347:243;11275:321;11155:441;;;:::o;7473:818::-;7615:1;7599:18;;:4;:18;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7691:1;7677:16;;:2;:16;;;7669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:38;7765:4;7771:2;7775:6;7744:20;:38::i;:::-;7793:19;7815:9;:15;7825:4;7815:15;;;;;;;;;;;;;;;;7793:37;;7863:6;7848:11;:21;;7840:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7978:6;7964:11;:20;7946:9;:15;7956:4;7946:15;;;;;;;;;;;;;;;:38;;;;8178:6;8161:9;:13;8171:2;8161:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8225:2;8210:26;;8219:4;8210:26;;;8229:6;8210:26;;;;;;:::i;:::-;;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;:::-;7581:710;7473:818;;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:99:22:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:191;6406:3;6425:20;6443:1;6425:20;:::i;:::-;6420:25;;6459:20;6477:1;6459:20;:::i;:::-;6454:25;;6502:1;6499;6495:9;6488:16;;6523:3;6520:1;6517:10;6514:36;;;6530:18;;:::i;:::-;6514:36;6366:191;;;;:::o;6563:224::-;6703:34;6699:1;6691:6;6687:14;6680:58;6772:7;6767:2;6759:6;6755:15;6748:32;6563:224;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6793:366;;;:::o;7165:419::-;7331:4;7369:2;7358:9;7354:18;7346:26;;7418:9;7412:4;7408:20;7404:1;7393:9;7389:17;7382:47;7446:131;7572:4;7446:131;:::i;:::-;7438:139;;7165:419;;;:::o;7590:223::-;7730:34;7726:1;7718:6;7714:14;7707:58;7799:6;7794:2;7786:6;7782:15;7775:31;7590:223;:::o;7819:366::-;7961:3;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7819:366;;;:::o;8191:419::-;8357:4;8395:2;8384:9;8380:18;8372:26;;8444:9;8438:4;8434:20;8430:1;8419:9;8415:17;8408:47;8472:131;8598:4;8472:131;:::i;:::-;8464:139;;8191:419;;;:::o;8616:221::-;8756:34;8752:1;8744:6;8740:14;8733:58;8825:4;8820:2;8812:6;8808:15;8801:29;8616:221;:::o;8843:366::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:419::-;9381:4;9419:2;9408:9;9404:18;9396:26;;9468:9;9462:4;9458:20;9454:1;9443:9;9439:17;9432:47;9496:131;9622:4;9496:131;:::i;:::-;9488:139;;9215:419;;;:::o;9640:179::-;9780:31;9776:1;9768:6;9764:14;9757:55;9640:179;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:419::-;10363:4;10401:2;10390:9;10386:18;10378:26;;10450:9;10444:4;10440:20;10436:1;10425:9;10421:17;10414:47;10478:131;10604:4;10478:131;:::i;:::-;10470:139;;10197:419;;;:::o;10622:224::-;10762:34;10758:1;10750:6;10746:14;10739:58;10831:7;10826:2;10818:6;10814:15;10807:32;10622:224;:::o;10852:366::-;10994:3;11015:67;11079:2;11074:3;11015:67;:::i;:::-;11008:74;;11091:93;11180:3;11091:93;:::i;:::-;11209:2;11204:3;11200:12;11193:19;;10852:366;;;:::o;11224:419::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11477:9;11471:4;11467:20;11463:1;11452:9;11448:17;11441:47;11505:131;11631:4;11505:131;:::i;:::-;11497:139;;11224:419;;;:::o;11649:222::-;11789:34;11785:1;11777:6;11773:14;11766:58;11858:5;11853:2;11845:6;11841:15;11834:30;11649:222;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:225::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:8;12878:2;12870:6;12866:15;12859:33;12674:225;:::o;12905:366::-;13047:3;13068:67;13132:2;13127:3;13068:67;:::i;:::-;13061:74;;13144:93;13233:3;13144:93;:::i;:::-;13262:2;13257:3;13253:12;13246:19;;12905:366;;;:::o;13277:419::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13530:9;13524:4;13520:20;13516:1;13505:9;13501:17;13494:47;13558:131;13684:4;13558:131;:::i;:::-;13550:139;;13277:419;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "IERC20Permit": { + "abi": [ + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "nonces(address)": "7ecebe00", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "SafeERC20": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206cf88f5263029175b3545a48eae10b12554cc86876c6445b3e4e83cc514c8f4264736f6c63430008110033", + "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 PUSH13 0xF88F5263029175B3545A48EAE1 SIGNEXTEND SLT SSTORE 0x4C 0xC8 PUSH9 0x76C6445B3E4E83CC51 0x4C DUP16 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "707:3748:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206cf88f5263029175b3545a48eae10b12554cc86876c6445b3e4e83cc514c8f4264736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH13 0xF88F5263029175B3545A48EAE1 SIGNEXTEND SLT SSTORE 0x4C 0xC8 PUSH9 0x76C6445B3E4E83CC51 0x4C DUP16 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "707:3748:5:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ERC721": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 376, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 502, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 247, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 99, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 635, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1067, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1028, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 902, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1222, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 332, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 693, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 193, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1160, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 646, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 146, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 119, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 124, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 114, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 109, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 129, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1147, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1000, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 796, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 952, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 995, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620026dd380380620026dd8339818101604052810190620000379190620001f6565b8160009081620000489190620004c6565b5080600190816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61212080620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e991906114f4565b6102bc565b6040516100fb919061153c565b60405180910390f35b61010c61039e565b60405161011991906115e7565b60405180910390f35b61013c6004803603810190610137919061163f565b610430565b60405161014991906116ad565b60405180910390f35b61016c600480360381019061016791906116f4565b610476565b005b61018860048036038101906101839190611734565b61058d565b005b6101a4600480360381019061019f9190611734565b6105ed565b005b6101c060048036038101906101bb919061163f565b61060d565b6040516101cd91906116ad565b60405180910390f35b6101f060048036038101906101eb9190611787565b610693565b6040516101fd91906117c3565b60405180910390f35b61020e61074a565b60405161021b91906115e7565b60405180910390f35b61023e6004803603810190610239919061180a565b6107dc565b005b61025a6004803603810190610255919061197f565b6107f2565b005b6102766004803603810190610271919061163f565b610854565b60405161028391906115e7565b60405180910390f35b6102a660048036038101906102a19190611a02565b6108bc565b6040516102b3919061153c565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610950565b5b9050919050565b6060600080546103ad90611a71565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611a71565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b826109ba565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104818261060d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890611b14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610510610a05565b73ffffffffffffffffffffffffffffffffffffffff16148061053f575061053e81610539610a05565b6108bc565b5b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057590611ba6565b60405180910390fd5b6105888383610a0d565b505050565b61059e610598610a05565b82610ac6565b6105dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d490611c38565b60405180910390fd5b6105e8838383610b5b565b505050565b610608838383604051806020016040528060008152506107f2565b505050565b60008061061983610e54565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190611ca4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90611d36565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461075990611a71565b80601f016020809104026020016040519081016040528092919081815260200182805461078590611a71565b80156107d25780601f106107a7576101008083540402835291602001916107d2565b820191906000526020600020905b8154815290600101906020018083116107b557829003601f168201915b5050505050905090565b6107ee6107e7610a05565b8383610e91565b5050565b6108036107fd610a05565b83610ac6565b610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990611c38565b60405180910390fd5b61084e84848484610ffd565b50505050565b606061085f826109ba565b6000610869611059565b9050600081511161088957604051806020016040528060008152506108b4565b8061089384611070565b6040516020016108a4929190611d92565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6109c38161113e565b610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611ca4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610a808361060d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ad28361060d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610b145750610b1381856108bc565b5b80610b5257508373ffffffffffffffffffffffffffffffffffffffff16610b3a84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b7b8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890611e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611eba565b60405180910390fd5b610c4d838383600161117f565b8273ffffffffffffffffffffffffffffffffffffffff16610c6d8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba90611e28565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e4f8383836001611185565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611f26565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ff0919061153c565b60405180910390a3505050565b611008848484610b5b565b6110148484848461118b565b611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a90611fb8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606000600161107f84611312565b01905060008167ffffffffffffffff81111561109e5761109d611854565b5b6040519080825280601f01601f1916602001820160405280156110d05781602001600182028036833780820191505090505b509050600082602001820190505b600115611133578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161112757611126611fd8565b5b049450600085036110de575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661116083610e54565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006111ac8473ffffffffffffffffffffffffffffffffffffffff16611465565b15611305578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026111d5610a05565b8786866040518563ffffffff1660e01b81526004016111f7949392919061205c565b6020604051808303816000875af192505050801561123357506040513d601f19601f8201168201806040525081019061123091906120bd565b60015b6112b5573d8060008114611263576040519150601f19603f3d011682016040523d82523d6000602084013e611268565b606091505b5060008151036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490611fb8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061130a565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611370577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161136657611365611fd8565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106113ad576d04ee2d6d415b85acef810000000083816113a3576113a2611fd8565b5b0492506020810190505b662386f26fc1000083106113dc57662386f26fc1000083816113d2576113d1611fd8565b5b0492506010810190505b6305f5e1008310611405576305f5e10083816113fb576113fa611fd8565b5b0492506008810190505b612710831061142a5761271083816114205761141f611fd8565b5b0492506004810190505b6064831061144d576064838161144357611442611fd8565b5b0492506002810190505b600a831061145c576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d18161149c565b81146114dc57600080fd5b50565b6000813590506114ee816114c8565b92915050565b60006020828403121561150a57611509611492565b5b6000611518848285016114df565b91505092915050565b60008115159050919050565b61153681611521565b82525050565b6000602082019050611551600083018461152d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611591578082015181840152602081019050611576565b60008484015250505050565b6000601f19601f8301169050919050565b60006115b982611557565b6115c38185611562565b93506115d3818560208601611573565b6115dc8161159d565b840191505092915050565b6000602082019050818103600083015261160181846115ae565b905092915050565b6000819050919050565b61161c81611609565b811461162757600080fd5b50565b60008135905061163981611613565b92915050565b60006020828403121561165557611654611492565b5b60006116638482850161162a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116978261166c565b9050919050565b6116a78161168c565b82525050565b60006020820190506116c2600083018461169e565b92915050565b6116d18161168c565b81146116dc57600080fd5b50565b6000813590506116ee816116c8565b92915050565b6000806040838503121561170b5761170a611492565b5b6000611719858286016116df565b925050602061172a8582860161162a565b9150509250929050565b60008060006060848603121561174d5761174c611492565b5b600061175b868287016116df565b935050602061176c868287016116df565b925050604061177d8682870161162a565b9150509250925092565b60006020828403121561179d5761179c611492565b5b60006117ab848285016116df565b91505092915050565b6117bd81611609565b82525050565b60006020820190506117d860008301846117b4565b92915050565b6117e781611521565b81146117f257600080fd5b50565b600081359050611804816117de565b92915050565b6000806040838503121561182157611820611492565b5b600061182f858286016116df565b9250506020611840858286016117f5565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61188c8261159d565b810181811067ffffffffffffffff821117156118ab576118aa611854565b5b80604052505050565b60006118be611488565b90506118ca8282611883565b919050565b600067ffffffffffffffff8211156118ea576118e9611854565b5b6118f38261159d565b9050602081019050919050565b82818337600083830152505050565b600061192261191d846118cf565b6118b4565b90508281526020810184848401111561193e5761193d61184f565b5b611949848285611900565b509392505050565b600082601f8301126119665761196561184a565b5b813561197684826020860161190f565b91505092915050565b6000806000806080858703121561199957611998611492565b5b60006119a7878288016116df565b94505060206119b8878288016116df565b93505060406119c98782880161162a565b925050606085013567ffffffffffffffff8111156119ea576119e9611497565b5b6119f687828801611951565b91505092959194509250565b60008060408385031215611a1957611a18611492565b5b6000611a27858286016116df565b9250506020611a38858286016116df565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a8957607f821691505b602082108103611a9c57611a9b611a42565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611afe602183611562565b9150611b0982611aa2565b604082019050919050565b60006020820190508181036000830152611b2d81611af1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000611b90603d83611562565b9150611b9b82611b34565b604082019050919050565b60006020820190508181036000830152611bbf81611b83565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000611c22602d83611562565b9150611c2d82611bc6565b604082019050919050565b60006020820190508181036000830152611c5181611c15565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000611c8e601883611562565b9150611c9982611c58565b602082019050919050565b60006020820190508181036000830152611cbd81611c81565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611d20602983611562565b9150611d2b82611cc4565b604082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b600081905092915050565b6000611d6c82611557565b611d768185611d56565b9350611d86818560208601611573565b80840191505092915050565b6000611d9e8285611d61565b9150611daa8284611d61565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000611e12602583611562565b9150611e1d82611db6565b604082019050919050565b60006020820190508181036000830152611e4181611e05565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ea4602483611562565b9150611eaf82611e48565b604082019050919050565b60006020820190508181036000830152611ed381611e97565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000611f10601983611562565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000611fa2603283611562565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b600061202e82612007565b6120388185612012565b9350612048818560208601611573565b6120518161159d565b840191505092915050565b6000608082019050612071600083018761169e565b61207e602083018661169e565b61208b60408301856117b4565b818103606083015261209d8184612023565b905095945050505050565b6000815190506120b7816114c8565b92915050565b6000602082840312156120d3576120d2611492565b5b60006120e1848285016120a8565b9150509291505056fea26469706673582212201a0a48262c283ec50743f75054bf658159fcaed6c3d850d4d5c501d985cf0ded64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x26DD CODESIZE SUB DUP1 PUSH3 0x26DD DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1F6 JUMP JUMPDEST DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x48 SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5A SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP POP POP PUSH3 0x5AD 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 PUSH3 0xCC DUP3 PUSH3 0x81 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xEE JUMPI PUSH3 0xED PUSH3 0x92 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x103 PUSH3 0x63 JUMP JUMPDEST SWAP1 POP PUSH3 0x111 DUP3 DUP3 PUSH3 0xC1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x134 JUMPI PUSH3 0x133 PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x13F DUP3 PUSH3 0x81 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x16C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x14F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18F PUSH3 0x189 DUP5 PUSH3 0x116 JUMP JUMPDEST PUSH3 0xF7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1AE JUMPI PUSH3 0x1AD PUSH3 0x7C JUMP JUMPDEST JUMPDEST PUSH3 0x1BB DUP5 DUP3 DUP6 PUSH3 0x14C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DB JUMPI PUSH3 0x1DA PUSH3 0x77 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1ED DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x178 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x210 JUMPI PUSH3 0x20F PUSH3 0x6D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x231 JUMPI PUSH3 0x230 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x23F DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x263 JUMPI PUSH3 0x262 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x271 DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2CE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E4 JUMPI PUSH3 0x2E3 PUSH3 0x286 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 PUSH3 0x34E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x30F JUMP JUMPDEST PUSH3 0x35A DUP7 DUP4 PUSH3 0x30F 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 PUSH3 0x3A7 PUSH3 0x3A1 PUSH3 0x39B DUP5 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x37C JUMP JUMPDEST PUSH3 0x372 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C3 DUP4 PUSH3 0x386 JUMP JUMPDEST PUSH3 0x3DB PUSH3 0x3D2 DUP3 PUSH3 0x3AE JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x31C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F2 PUSH3 0x3E3 JUMP JUMPDEST PUSH3 0x3FF DUP2 DUP5 DUP5 PUSH3 0x3B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x427 JUMPI PUSH3 0x41B PUSH1 0x0 DUP3 PUSH3 0x3E8 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x476 JUMPI PUSH3 0x440 DUP2 PUSH3 0x2EA JUMP JUMPDEST PUSH3 0x44B DUP5 PUSH3 0x2FF JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x473 PUSH3 0x46A DUP6 PUSH3 0x2FF JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x404 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 PUSH3 0x49B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4B6 DUP4 DUP4 PUSH3 0x488 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D1 DUP3 PUSH3 0x27B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4ED JUMPI PUSH3 0x4EC PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x4F9 DUP3 SLOAD PUSH3 0x2B5 JUMP JUMPDEST PUSH3 0x506 DUP3 DUP3 DUP6 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x53E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x529 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x535 DUP6 DUP3 PUSH3 0x4A8 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x54E DUP7 PUSH3 0x2EA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x578 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 PUSH3 0x551 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x598 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x594 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x488 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 PUSH2 0x2120 DUP1 PUSH3 0x5BD 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x28C JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x18A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x14F4 JUMP JUMPDEST PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFB SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x137 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x1787 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x17C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20E PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x180A JUMP JUMPDEST PUSH2 0x7DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x276 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x1A02 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x387 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x397 JUMPI POP PUSH2 0x396 DUP3 PUSH2 0x950 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x1A71 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 0x3D9 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x481 DUP3 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E8 SWAP1 PUSH2 0x1B14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x510 PUSH2 0xA05 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x53F JUMPI POP PUSH2 0x53E DUP2 PUSH2 0x539 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST JUMPDEST PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x575 SWAP1 PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x588 DUP4 DUP4 PUSH2 0xA0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x59E PUSH2 0x598 PUSH2 0xA05 JUMP JUMPDEST DUP3 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x5DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D4 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E8 DUP4 DUP4 DUP4 PUSH2 0xB5B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x619 DUP4 PUSH2 0xE54 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x68A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FA SWAP1 PUSH2 0x1D36 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x759 SWAP1 PUSH2 0x1A71 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 0x785 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D2 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 0x7B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7EE PUSH2 0x7E7 PUSH2 0xA05 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x803 PUSH2 0x7FD PUSH2 0xA05 JUMP JUMPDEST DUP4 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x839 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x84E DUP5 DUP5 DUP5 DUP5 PUSH2 0xFFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x85F DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x869 PUSH2 0x1059 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x889 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8B4 JUMP JUMPDEST DUP1 PUSH2 0x893 DUP5 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C3 DUP2 PUSH2 0x113E JUMP JUMPDEST PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA80 DUP4 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAD2 DUP4 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB13 DUP2 DUP6 PUSH2 0x8BC JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0xB52 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB3A DUP5 PUSH2 0x430 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB7B DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBC8 SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC37 SWAP1 PUSH2 0x1EBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC4D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x117F JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC6D DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCBA SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1185 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF6 SWAP1 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0xFF0 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1008 DUP5 DUP5 DUP5 PUSH2 0xB5B JUMP JUMPDEST PUSH2 0x1014 DUP5 DUP5 DUP5 DUP5 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104A SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x107F DUP5 PUSH2 0x1312 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0x1854 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 0x10D0 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 0x1133 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x10DE JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1160 DUP4 PUSH2 0xE54 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0x1305 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x11D5 PUSH2 0xA05 JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1233 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 0x1230 SWAP2 SWAP1 PUSH2 0x20BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x12B5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1263 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 0x1268 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x12AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A4 SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1370 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1366 JUMPI PUSH2 0x1365 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x13AD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x13A3 JUMPI PUSH2 0x13A2 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x13DC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x13D2 JUMPI PUSH2 0x13D1 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1405 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x13FB JUMPI PUSH2 0x13FA PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x142A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x144D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x145C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D1 DUP2 PUSH2 0x149C JUMP JUMPDEST DUP2 EQ PUSH2 0x14DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14EE DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x150A JUMPI PUSH2 0x1509 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1518 DUP5 DUP3 DUP6 ADD PUSH2 0x14DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1536 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1551 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x152D JUMP JUMPDEST 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 0x1591 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1576 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 0x15B9 DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x15C3 DUP2 DUP6 PUSH2 0x1562 JUMP JUMPDEST SWAP4 POP PUSH2 0x15D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x15DC DUP2 PUSH2 0x159D 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 0x1601 DUP2 DUP5 PUSH2 0x15AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x161C DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP2 EQ PUSH2 0x1627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1639 DUP2 PUSH2 0x1613 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1654 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1663 DUP5 DUP3 DUP6 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1697 DUP3 PUSH2 0x166C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A7 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x169E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D1 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16EE DUP2 PUSH2 0x16C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170B JUMPI PUSH2 0x170A PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1719 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x172A DUP6 DUP3 DUP7 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x174D JUMPI PUSH2 0x174C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x175B DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x176C DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x177D DUP7 DUP3 DUP8 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17AB DUP5 DUP3 DUP6 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17BD DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17E7 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP2 EQ PUSH2 0x17F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1804 DUP2 PUSH2 0x17DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1821 JUMPI PUSH2 0x1820 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x182F DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1840 DUP6 DUP3 DUP7 ADD PUSH2 0x17F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x188C DUP3 PUSH2 0x159D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x18AB JUMPI PUSH2 0x18AA PUSH2 0x1854 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BE PUSH2 0x1488 JUMP JUMPDEST SWAP1 POP PUSH2 0x18CA DUP3 DUP3 PUSH2 0x1883 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18EA JUMPI PUSH2 0x18E9 PUSH2 0x1854 JUMP JUMPDEST JUMPDEST PUSH2 0x18F3 DUP3 PUSH2 0x159D 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 0x1922 PUSH2 0x191D DUP5 PUSH2 0x18CF JUMP JUMPDEST PUSH2 0x18B4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x184F JUMP JUMPDEST JUMPDEST PUSH2 0x1949 DUP5 DUP3 DUP6 PUSH2 0x1900 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1966 JUMPI PUSH2 0x1965 PUSH2 0x184A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1976 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x190F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1999 JUMPI PUSH2 0x1998 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A7 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x19B8 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x19C9 DUP8 DUP3 DUP9 ADD PUSH2 0x162A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EA JUMPI PUSH2 0x19E9 PUSH2 0x1497 JUMP JUMPDEST JUMPDEST PUSH2 0x19F6 DUP8 DUP3 DUP9 ADD PUSH2 0x1951 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A19 JUMPI PUSH2 0x1A18 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A27 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A38 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x1A89 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9C JUMPI PUSH2 0x1A9B PUSH2 0x1A42 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AFE PUSH1 0x21 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B09 DUP3 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 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 0x1B2D DUP2 PUSH2 0x1AF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B90 PUSH1 0x3D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B9B DUP3 PUSH2 0x1B34 JUMP JUMPDEST PUSH1 0x40 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 0x1BBF DUP2 PUSH2 0x1B83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C22 PUSH1 0x2D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2D DUP3 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x40 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 0x1C51 DUP2 PUSH2 0x1C15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8E PUSH1 0x18 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C99 DUP3 PUSH2 0x1C58 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 0x1CBD DUP2 PUSH2 0x1C81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D20 PUSH1 0x29 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D2B DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH1 0x40 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 0x1D4F DUP2 PUSH2 0x1D13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6C DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x1D76 DUP2 DUP6 PUSH2 0x1D56 JUMP JUMPDEST SWAP4 POP PUSH2 0x1D86 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9E DUP3 DUP6 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DAA DUP3 DUP5 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E12 PUSH1 0x25 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E1D DUP3 PUSH2 0x1DB6 JUMP JUMPDEST PUSH1 0x40 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 0x1E41 DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA4 PUSH1 0x24 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EAF DUP3 PUSH2 0x1E48 JUMP JUMPDEST PUSH1 0x40 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 0x1ED3 DUP2 PUSH2 0x1E97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F10 PUSH1 0x19 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F1B DUP3 PUSH2 0x1EDA 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 0x1F3F DUP2 PUSH2 0x1F03 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA2 PUSH1 0x32 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FAD DUP3 PUSH2 0x1F46 JUMP JUMPDEST PUSH1 0x40 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 0x1FD1 DUP2 PUSH2 0x1F95 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x202E DUP3 PUSH2 0x2007 JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x2012 JUMP JUMPDEST SWAP4 POP PUSH2 0x2048 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x2051 DUP2 PUSH2 0x159D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2071 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x207E PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x208B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x17B4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x209D DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20B7 DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D3 JUMPI PUSH2 0x20D2 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E1 DUP5 DUP3 DUP6 ADD PUSH2 0x20A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE EXP BASEFEE 0x26 0x2C 0x28 RETURNDATACOPY 0xC5 SMOD NUMBER 0xF7 POP SLOAD 0xBF PUSH6 0x8159FCAED6C3 0xD8 POP 0xD4 0xD5 0xC5 ADD 0xD9 DUP6 0xCF 0xD 0xED PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "628:16679:6:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1464:5;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;628:16679;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;628:16679:6:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 4485, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 2573, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 4185, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 4479, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 4491, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 4414, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 2758, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_2549": { + "entryPoint": 2565, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 3668, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 2490, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 4093, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 3729, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_1872": { + "entryPoint": 2907, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1142, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 1683, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1072, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 2236, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 5221, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 4882, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 926, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 1549, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 1517, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 2034, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 2012, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 700, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 2384, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 1866, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 4208, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 2132, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 1421, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 6415, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 5855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 6133, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 5343, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 8360, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 6481, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 5674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6023, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 6658, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 5940, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 6527, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 6154, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 5876, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 5364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 8381, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 5695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5790, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 5421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 8227, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7521, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7189, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8085, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7685, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7831, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7939, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7443, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7297, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6897, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7043, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6068, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 7570, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5805, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 8284, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 5436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5607, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7224, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8120, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7720, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7866, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7974, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7478, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7332, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6932, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7078, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6083, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 6324, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 5256, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 6351, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 8199, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 5463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 8210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5474, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7510, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 5772, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5409, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 5276, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 5740, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 5641, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 6400, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 5491, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 6769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 6275, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 8152, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 6722, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 6228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 6218, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 6223, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 5271, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 5266, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 5533, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 7110, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 8006, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 7606, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 7752, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 7898, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 7364, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 7256, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 6818, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 6964, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 5832, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 6110, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 5320, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 5651, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:23150:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1577:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1588:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1604:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1598:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1598:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1588:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1560:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1570:6:22", + "type": "" + } + ], + "src": "1518:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1719:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1736:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1741:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1729:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1729:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1729:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "1757:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1781:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1757:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1691:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1696:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1707:11:22", + "type": "" + } + ], + "src": "1623:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1860:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1870:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1879:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1874:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1939:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1964:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1969:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1960:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1960:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1983:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1988:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1979:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1973:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1953:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1953:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1900:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1903:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1897:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1897:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1911:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1913:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1922:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1925:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1918:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1913:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1893:3:22", + "statements": [] + }, + "src": "1889:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2022:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2027:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2018:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2018:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2036:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2011:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2011:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2011:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1842:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1847:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1852:6:22", + "type": "" + } + ], + "src": "1798:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2098:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2108:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2126:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2133:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2122:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2142:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2138:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2118:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2118:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "2108:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2081:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "2091:6:22", + "type": "" + } + ], + "src": "2050:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2250:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2260:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2307:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2274:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "2274:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2264:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2322:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2388:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2393:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2329:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2322:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2448:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2455:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2444:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2444:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2462:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2467:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2409:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2409:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "2483:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2494:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2521:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2499:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "2499:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2490:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2483:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2231:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2238:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2246:3:22", + "type": "" + } + ], + "src": "2158:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2659:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2669:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2681:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2692:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2677:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2677:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2669:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2716:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2727:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2712:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2712:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2735:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2741:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2731:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2731:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2705:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2705:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2705:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "2761:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2833:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2842:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2769:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "2769:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2761:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2631:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2643:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2654:4:22", + "type": "" + } + ], + "src": "2541:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2905:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2915:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2926:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2915:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2887:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2897:7:22", + "type": "" + } + ], + "src": "2860:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2986:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3043:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3052:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3055:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3045:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3045:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3045:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3009:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3034:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3016:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3016:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3006:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3006:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2999:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:43:22" + }, + "nodeType": "YulIf", + "src": "2996:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2979:5:22", + "type": "" + } + ], + "src": "2943:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3123:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3133:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3155:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3142:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "3142:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3133:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3198:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3171:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "3171:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3171:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3101:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3109:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3117:5:22", + "type": "" + } + ], + "src": "3071:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3282:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3328:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3330:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3330:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3330:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3303:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3312:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3299:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3299:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3324:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3295:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3295:32:22" + }, + "nodeType": "YulIf", + "src": "3292:119:22" + }, + { + "nodeType": "YulBlock", + "src": "3421:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3436:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3450:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3440:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3465:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3500:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3511:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3496:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3496:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3520:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3475:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "3475:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3465:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3252:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3263:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3275:6:22", + "type": "" + } + ], + "src": "3216:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3596:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3621:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3628:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3617:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3617:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3606:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3588:7:22", + "type": "" + } + ], + "src": "3551:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3728:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3738:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3767:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "3749:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3749:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3738:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3710:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3720:7:22", + "type": "" + } + ], + "src": "3683:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3850:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3867:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3890:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3872:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3872:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3860:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3860:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3860:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3838:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3845:3:22", + "type": "" + } + ], + "src": "3785:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4007:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4017:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4029:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4040:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4025:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4025:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4017:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4097:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4110:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4121:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4106:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4106:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4053:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "4053:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4053:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3979:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3991:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4002:4:22", + "type": "" + } + ], + "src": "3909:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4180:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4237:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4246:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4249:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4239:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4239:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4203:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4228:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "4210:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "4210:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4200:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4200:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4193:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4193:43:22" + }, + "nodeType": "YulIf", + "src": "4190:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4173:5:22", + "type": "" + } + ], + "src": "4137:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4317:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4327:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4349:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4336:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "4336:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4327:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4392:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "4365:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "4365:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4365:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4295:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4303:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4311:5:22", + "type": "" + } + ], + "src": "4265:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4493:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4539:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4541:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4541:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4541:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4514:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4523:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4510:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4510:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4535:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4506:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4506:32:22" + }, + "nodeType": "YulIf", + "src": "4503:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4632:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4647:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4661:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4651:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4676:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4711:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4722:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4707:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4707:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4731:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4686:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4686:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4676:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4759:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4774:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4788:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4778:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4804:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4839:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4850:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4835:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4835:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4859:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4814:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4814:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4804:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4455:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4466:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4478:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4486:6:22", + "type": "" + } + ], + "src": "4410:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4990:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5036:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5038:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5038:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5038:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5011:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5020:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5007:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5007:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5032:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5003:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5003:32:22" + }, + "nodeType": "YulIf", + "src": "5000:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5129:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5144:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5158:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5148:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5173:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5208:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5219:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5204:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5204:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5228:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5183:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5183:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5173:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5256:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5271:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5285:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5275:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5301:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5336:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5347:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5332:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5332:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5356:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5311:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5311:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5301:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5384:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5399:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5413:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5403:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5429:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5464:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5475:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5460:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5484:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5439:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5439:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4944:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4955:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4967:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4975:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4983:6:22", + "type": "" + } + ], + "src": "4890:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5581:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5627:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5629:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5629:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5629:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5602:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5611:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5598:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5598:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5623:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5594:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5594:32:22" + }, + "nodeType": "YulIf", + "src": "5591:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5720:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5735:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5749:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5739:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5764:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5799:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5810:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5795:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5795:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5819:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5774:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5774:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5764:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5551:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5562:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5574:6:22", + "type": "" + } + ], + "src": "5515:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5915:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5932:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5955:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5937:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5937:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5925:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5925:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5925:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5903:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5910:3:22", + "type": "" + } + ], + "src": "5850:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6072:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6082:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6094:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6105:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6090:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6090:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6082:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6162:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6175:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6186:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6171:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6171:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6118:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "6118:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6118:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6044:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6056:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6067:4:22", + "type": "" + } + ], + "src": "5974:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6242:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6296:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6305:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6308:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6298:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6298:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6298:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6265:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "6272:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "6272:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6262:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6262:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6255:40:22" + }, + "nodeType": "YulIf", + "src": "6252:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6235:5:22", + "type": "" + } + ], + "src": "6202:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6373:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6383:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6405:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6392:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "6392:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6383:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6445:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "6421:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "6421:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6351:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6359:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6367:5:22", + "type": "" + } + ], + "src": "6324:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6543:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6589:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6591:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6591:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6591:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6564:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6573:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6560:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6560:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6585:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6556:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6556:32:22" + }, + "nodeType": "YulIf", + "src": "6553:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6682:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6697:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6711:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6701:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6726:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6761:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6772:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6757:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6757:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6781:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6736:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6736:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6726:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6809:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6824:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6838:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6828:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6854:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6886:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6897:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6882:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6882:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6906:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "6864:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6864:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6854:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6505:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6516:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6528:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6536:6:22", + "type": "" + } + ], + "src": "6463:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7026:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7043:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7046:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7036:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7036:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7036:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "6937:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7149:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7166:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7169:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7159:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7159:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7159:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "7060:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7211:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7228:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7231:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7221:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7221:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7221:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7325:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7328:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7318:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7318:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7318:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7349:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7352:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7342:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7342:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7342:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "7183:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7412:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7422:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7444:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7474:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7452:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "7452:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7440:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7440:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7426:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7591:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7593:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7593:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7593:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7534:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7546:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7531:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7531:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7570:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7582:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7567:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7567:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7528:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7528:62:22" + }, + "nodeType": "YulIf", + "src": "7525:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7629:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7633:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7622:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7622:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7622:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7398:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7406:4:22", + "type": "" + } + ], + "src": "7369:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7697:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7707:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7717:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7717:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7707:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7766:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7774:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7746:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "7746:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7746:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7681:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7690:6:22", + "type": "" + } + ], + "src": "7656:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7857:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7962:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7964:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7964:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7964:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7934:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7942:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7931:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7931:30:22" + }, + "nodeType": "YulIf", + "src": "7928:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "7994:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8024:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "8002:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "8002:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7994:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8068:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "8080:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8086:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8076:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "8068:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7841:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7852:4:22", + "type": "" + } + ], + "src": "7791:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8168:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8191:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8196:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8201:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "8178:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8178:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8178:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8228:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8233:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8224:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8224:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8242:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8217:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8217:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8217:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8150:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "8155:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8160:6:22", + "type": "" + } + ], + "src": "8104:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8339:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8349:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8415:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8374:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "8374:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "8358:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "8358:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8349:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8439:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8446:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8432:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8432:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8432:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8462:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8477:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8484:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8473:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8473:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "8466:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8527:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "8529:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8529:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8529:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8508:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8513:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8504:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8522:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8501:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8501:25:22" + }, + "nodeType": "YulIf", + "src": "8498:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8656:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8661:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8666:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "8619:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "8619:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8619:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8312:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8317:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8325:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8333:5:22", + "type": "" + } + ], + "src": "8256:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8759:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8808:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8810:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8810:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8810:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8787:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8795:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8783:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8783:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8802:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8779:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8779:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8772:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8772:35:22" + }, + "nodeType": "YulIf", + "src": "8769:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8900:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8927:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8914:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8914:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8904:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8943:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9011:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8999:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9018:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9026:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8952:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "8952:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8943:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8737:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8745:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8753:5:22", + "type": "" + } + ], + "src": "8698:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9168:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9215:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9217:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9217:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9217:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9189:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9198:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9185:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9185:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9210:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9181:33:22" + }, + "nodeType": "YulIf", + "src": "9178:120:22" + }, + { + "nodeType": "YulBlock", + "src": "9308:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9323:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9337:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9327:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9352:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9387:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9398:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9383:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9383:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9407:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9362:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9362:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9352:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9435:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9450:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9464:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9454:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9480:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9515:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9526:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9511:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9511:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9535:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9490:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9490:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9480:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9563:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9578:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9592:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9582:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9608:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9643:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9654:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9639:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9663:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9618:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9618:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9608:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9691:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9706:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9737:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9748:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9733:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9733:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9720:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "9720:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9710:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9799:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9801:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9801:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9801:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9771:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9779:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9768:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9768:30:22" + }, + "nodeType": "YulIf", + "src": "9765:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "9896:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9940:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9951:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9936:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9960:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9906:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "9906:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9896:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9114:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9125:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9137:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9145:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9153:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "9161:6:22", + "type": "" + } + ], + "src": "9042:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10074:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10120:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10122:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10122:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10122:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10095:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10104:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10091:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10091:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10116:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10087:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10087:32:22" + }, + "nodeType": "YulIf", + "src": "10084:119:22" + }, + { + "nodeType": "YulBlock", + "src": "10213:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10228:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10242:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10232:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10257:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10292:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10303:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10288:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10312:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10267:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10267:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10257:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10340:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10355:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10369:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10359:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10385:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10420:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10431:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10416:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10416:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10440:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10395:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10395:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10385:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10036:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10047:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10059:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10067:6:22", + "type": "" + } + ], + "src": "9991:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10499:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10516:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10519:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10509:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10509:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10509:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10613:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10616:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10606:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10606:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10606:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10637:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10640:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10630:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10630:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10630:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "10471:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10708:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10718:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10732:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10738:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10728:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10728:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10718:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10749:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10779:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10785:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10775:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "10753:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10826:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10840:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10854:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10862:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10850:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10840:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10806:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10799:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10799:26:22" + }, + "nodeType": "YulIf", + "src": "10796:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10929:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "10943:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "10943:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10943:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10893:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10916:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10924:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10913:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10913:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "10890:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10890:38:22" + }, + "nodeType": "YulIf", + "src": "10887:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "10692:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10701:6:22", + "type": "" + } + ], + "src": "10657:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11089:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11111:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11119:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11107:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11107:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11123:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11100:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11100:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11100:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11179:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11187:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11175:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11175:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11192:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11168:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11168:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11168:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11081:6:22", + "type": "" + } + ], + "src": "10983:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11355:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11365:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11431:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11436:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11372:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11372:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11365:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11537:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "11448:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11448:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11448:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11550:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11561:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11566:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11557:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11550:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11343:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11351:3:22", + "type": "" + } + ], + "src": "11209:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11752:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11762:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11774:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11785:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11770:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11762:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11809:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11820:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11805:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11805:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11828:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11834:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11824:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11824:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11798:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11798:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11798:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11854:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11988:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11862:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11862:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11854:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11732:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11747:4:22", + "type": "" + } + ], + "src": "11581:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12112:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12134:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12142:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12130:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12146:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12123:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12123:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12123:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12202:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12210:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12198:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12198:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12215:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12191:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12191:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12191:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12104:6:22", + "type": "" + } + ], + "src": "12006:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12406:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12416:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12482:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12487:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12423:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12423:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12416:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12588:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "12499:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12499:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12499:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12601:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12612:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12617:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12608:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12608:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12601:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12394:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12402:3:22", + "type": "" + } + ], + "src": "12260:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12803:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12813:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12825:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12836:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12821:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12821:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12813:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12860:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12871:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12856:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12856:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12879:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12885:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12875:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12875:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12849:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12849:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12849:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "12905:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13039:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12913:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "12913:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12905:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12783:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12798:4:22", + "type": "" + } + ], + "src": "12632:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13163:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13185:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13193:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13181:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13197:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13174:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13174:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13174:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13253:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13261:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13249:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13249:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13266:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13242:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13242:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13242:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13155:6:22", + "type": "" + } + ], + "src": "13057:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13441:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13451:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13517:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13522:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13458:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13458:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13451:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13623:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "13534:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13534:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13534:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13636:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13647:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13652:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13643:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13643:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13636:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13429:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13437:3:22", + "type": "" + } + ], + "src": "13295:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13838:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13848:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13860:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13871:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13856:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13856:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13848:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13895:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13906:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13891:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13891:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13914:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13920:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13910:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13910:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13884:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13884:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13884:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13940:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14074:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13948:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13948:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13940:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13818:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13833:4:22", + "type": "" + } + ], + "src": "13667:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14198:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14220:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14228:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14216:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14216:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14232:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14209:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14209:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14209:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14190:6:22", + "type": "" + } + ], + "src": "14092:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14418:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14428:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14494:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14499:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14435:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "14435:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14428:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14600:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "14511:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "14511:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14511:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "14613:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14624:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14629:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14620:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14620:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14613:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14406:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14414:3:22", + "type": "" + } + ], + "src": "14272:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14815:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14825:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14837:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14848:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14833:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14833:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14825:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14883:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14868:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14891:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14897:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14887:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14887:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14861:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14861:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14861:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "14917:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15051:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14925:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "14925:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14917:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14795:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14810:4:22", + "type": "" + } + ], + "src": "14644:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15175:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15197:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15205:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15193:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15193:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15209:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15186:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15186:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15186:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15265:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15273:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15261:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15278:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15254:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15254:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15254:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15167:6:22", + "type": "" + } + ], + "src": "15069:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15449:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15459:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15525:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15530:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15466:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15466:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15459:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15631:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "15542:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15542:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15542:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15644:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15655:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15660:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15651:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15651:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15644:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15437:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15445:3:22", + "type": "" + } + ], + "src": "15303:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15846:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15856:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15868:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15879:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15864:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15864:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15856:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15903:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15914:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15899:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15899:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15922:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15918:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15892:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15892:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15892:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15948:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16082:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15956:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15956:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15948:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15841:4:22", + "type": "" + } + ], + "src": "15675:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16214:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16224:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16239:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "16224:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16186:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16191:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "16202:11:22", + "type": "" + } + ], + "src": "16100:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16364:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16374:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16421:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16388:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "16388:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16378:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16436:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16520:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16525:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16443:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "16443:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16436:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16580:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16587:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16576:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16576:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16594:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16599:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "16541:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "16541:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16541:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "16615:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16626:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16631:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16622:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16622:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16615:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16345:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16352:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16360:3:22", + "type": "" + } + ], + "src": "16254:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16834:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16845:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16934:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16943:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16852:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "16852:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16845:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16957:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "17046:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17055:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16964:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "16964:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16957:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17069:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17076:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17069:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16805:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "16811:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16819:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16830:3:22", + "type": "" + } + ], + "src": "16650:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17197:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17219:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17227:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17215:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17215:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17231:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17208:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17208:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17208:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17287:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17295:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17283:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17283:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17300:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17276:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17276:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17276:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17189:6:22", + "type": "" + } + ], + "src": "17091:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17467:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17477:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17543:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17548:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17484:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17484:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17477:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17649:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "17560:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17560:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17560:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17662:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17673:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17678:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17669:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17669:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17662:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17455:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17463:3:22", + "type": "" + } + ], + "src": "17321:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17864:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17874:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17886:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17897:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17882:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17882:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17874:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17921:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17932:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17917:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17917:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17940:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17946:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17936:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17910:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17910:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17910:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17966:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18100:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17974:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17974:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17966:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17844:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17859:4:22", + "type": "" + } + ], + "src": "17693:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18224:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18246:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18254:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18242:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18242:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18258:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18235:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18235:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18235:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18314:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18322:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18310:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18327:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18303:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18303:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18303:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18216:6:22", + "type": "" + } + ], + "src": "18118:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18493:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18503:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18569:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18574:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18510:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18510:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18503:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18675:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "18586:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18586:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18586:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18688:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18699:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18704:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18695:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18695:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18688:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18481:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18489:3:22", + "type": "" + } + ], + "src": "18347:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18890:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18900:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18912:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18923:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18908:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18908:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18900:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18947:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18958:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18943:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18943:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18966:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18972:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18962:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18962:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18936:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18936:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18936:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18992:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19126:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19000:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19000:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18992:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18870:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18885:4:22", + "type": "" + } + ], + "src": "18719:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19250:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19272:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19280:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19268:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19268:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19284:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19261:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19261:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19261:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19242:6:22", + "type": "" + } + ], + "src": "19144:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19471:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19481:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19547:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19552:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19488:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19488:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19481:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19653:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "19564:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19564:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19564:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19666:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19677:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19682:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19673:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19666:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19459:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19467:3:22", + "type": "" + } + ], + "src": "19325:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19868:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19878:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19890:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19901:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19886:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19886:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19878:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19925:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19936:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19921:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19921:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19944:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19950:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19940:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19940:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19914:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19914:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19914:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19970:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20104:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19978:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19978:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19970:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19848:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19863:4:22", + "type": "" + } + ], + "src": "19697:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20228:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20250:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20258:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20246:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20246:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20262:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20239:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20239:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20318:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20326:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20314:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20314:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20331:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20307:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20307:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20220:6:22", + "type": "" + } + ], + "src": "20122:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20511:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20521:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20587:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20592:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20528:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20528:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20521:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20693:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "20604:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20604:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20604:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20706:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20717:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20722:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20713:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20713:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20706:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20499:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20507:3:22", + "type": "" + } + ], + "src": "20365:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20908:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20918:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20930:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20941:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20926:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20926:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20918:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20965:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20976:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20961:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20961:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20984:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20990:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20980:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20980:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20954:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20954:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20954:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "21010:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21144:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21018:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "21018:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21010:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20888:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20903:4:22", + "type": "" + } + ], + "src": "20737:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21190:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21207:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21210:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21200:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21200:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21200:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21304:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21307:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21297:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21297:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21297:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21328:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21331:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21321:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21321:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "21162:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21406:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21417:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21433:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21427:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "21427:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21417:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21389:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21399:6:22", + "type": "" + } + ], + "src": "21348:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21547:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21564:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21569:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21557:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21557:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21557:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "21585:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21604:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21609:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21600:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21600:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "21585:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21519:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21524:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "21535:11:22", + "type": "" + } + ], + "src": "21452:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21716:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21726:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21772:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "21740:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "21740:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21730:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21787:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21852:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21857:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21794:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "21794:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21787:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21912:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21919:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21908:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21908:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21926:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21931:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "21873:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "21873:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21873:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "21947:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21958:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21985:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "21963:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "21963:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21954:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21954:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21947:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21697:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21704:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21712:3:22", + "type": "" + } + ], + "src": "21626:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22205:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22215:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22227:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22238:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22223:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22223:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22215:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "22296:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22309:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22305:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22305:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22252:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22252:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22252:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "22377:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22401:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22386:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22333:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22333:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22333:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "22459:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22472:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22483:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22468:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "22415:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22415:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22415:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22508:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22519:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22504:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22528:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22534:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22524:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22524:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22497:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22497:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22497:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "22554:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "22624:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22633:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22562:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "22562:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22554:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22153:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "22165:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "22173:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "22181:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22189:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22200:4:22", + "type": "" + } + ], + "src": "22005:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22713:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22723:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22738:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "22732:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "22732:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22723:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22780:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "22754:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "22754:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22754:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "22691:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22699:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22707:5:22", + "type": "" + } + ], + "src": "22651:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22874:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22920:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "22922:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "22922:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22922:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22895:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22904:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22891:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22891:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22916:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "22887:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22887:32:22" + }, + "nodeType": "YulIf", + "src": "22884:119:22" + }, + { + "nodeType": "YulBlock", + "src": "23013:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23028:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23042:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23032:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23057:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23102:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23113:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23098:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23098:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23122:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "23067:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "23067:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23057:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22844:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "22855:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22867:6:22", + "type": "" + } + ], + "src": "22798:349:22" + } + ] + }, + "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_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 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 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 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_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_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 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 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__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 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 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_decode_tuple_t_addresst_addresst_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_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 function abi_decode_tuple_t_address(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_address(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 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e991906114f4565b6102bc565b6040516100fb919061153c565b60405180910390f35b61010c61039e565b60405161011991906115e7565b60405180910390f35b61013c6004803603810190610137919061163f565b610430565b60405161014991906116ad565b60405180910390f35b61016c600480360381019061016791906116f4565b610476565b005b61018860048036038101906101839190611734565b61058d565b005b6101a4600480360381019061019f9190611734565b6105ed565b005b6101c060048036038101906101bb919061163f565b61060d565b6040516101cd91906116ad565b60405180910390f35b6101f060048036038101906101eb9190611787565b610693565b6040516101fd91906117c3565b60405180910390f35b61020e61074a565b60405161021b91906115e7565b60405180910390f35b61023e6004803603810190610239919061180a565b6107dc565b005b61025a6004803603810190610255919061197f565b6107f2565b005b6102766004803603810190610271919061163f565b610854565b60405161028391906115e7565b60405180910390f35b6102a660048036038101906102a19190611a02565b6108bc565b6040516102b3919061153c565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610950565b5b9050919050565b6060600080546103ad90611a71565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611a71565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b826109ba565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104818261060d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890611b14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610510610a05565b73ffffffffffffffffffffffffffffffffffffffff16148061053f575061053e81610539610a05565b6108bc565b5b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057590611ba6565b60405180910390fd5b6105888383610a0d565b505050565b61059e610598610a05565b82610ac6565b6105dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d490611c38565b60405180910390fd5b6105e8838383610b5b565b505050565b610608838383604051806020016040528060008152506107f2565b505050565b60008061061983610e54565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190611ca4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90611d36565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461075990611a71565b80601f016020809104026020016040519081016040528092919081815260200182805461078590611a71565b80156107d25780601f106107a7576101008083540402835291602001916107d2565b820191906000526020600020905b8154815290600101906020018083116107b557829003601f168201915b5050505050905090565b6107ee6107e7610a05565b8383610e91565b5050565b6108036107fd610a05565b83610ac6565b610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990611c38565b60405180910390fd5b61084e84848484610ffd565b50505050565b606061085f826109ba565b6000610869611059565b9050600081511161088957604051806020016040528060008152506108b4565b8061089384611070565b6040516020016108a4929190611d92565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6109c38161113e565b610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611ca4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610a808361060d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ad28361060d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610b145750610b1381856108bc565b5b80610b5257508373ffffffffffffffffffffffffffffffffffffffff16610b3a84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b7b8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890611e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611eba565b60405180910390fd5b610c4d838383600161117f565b8273ffffffffffffffffffffffffffffffffffffffff16610c6d8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba90611e28565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e4f8383836001611185565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611f26565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ff0919061153c565b60405180910390a3505050565b611008848484610b5b565b6110148484848461118b565b611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a90611fb8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606000600161107f84611312565b01905060008167ffffffffffffffff81111561109e5761109d611854565b5b6040519080825280601f01601f1916602001820160405280156110d05781602001600182028036833780820191505090505b509050600082602001820190505b600115611133578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161112757611126611fd8565b5b049450600085036110de575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661116083610e54565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006111ac8473ffffffffffffffffffffffffffffffffffffffff16611465565b15611305578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026111d5610a05565b8786866040518563ffffffff1660e01b81526004016111f7949392919061205c565b6020604051808303816000875af192505050801561123357506040513d601f19601f8201168201806040525081019061123091906120bd565b60015b6112b5573d8060008114611263576040519150601f19603f3d011682016040523d82523d6000602084013e611268565b606091505b5060008151036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490611fb8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061130a565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611370577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161136657611365611fd8565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106113ad576d04ee2d6d415b85acef810000000083816113a3576113a2611fd8565b5b0492506020810190505b662386f26fc1000083106113dc57662386f26fc1000083816113d2576113d1611fd8565b5b0492506010810190505b6305f5e1008310611405576305f5e10083816113fb576113fa611fd8565b5b0492506008810190505b612710831061142a5761271083816114205761141f611fd8565b5b0492506004810190505b6064831061144d576064838161144357611442611fd8565b5b0492506002810190505b600a831061145c576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d18161149c565b81146114dc57600080fd5b50565b6000813590506114ee816114c8565b92915050565b60006020828403121561150a57611509611492565b5b6000611518848285016114df565b91505092915050565b60008115159050919050565b61153681611521565b82525050565b6000602082019050611551600083018461152d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611591578082015181840152602081019050611576565b60008484015250505050565b6000601f19601f8301169050919050565b60006115b982611557565b6115c38185611562565b93506115d3818560208601611573565b6115dc8161159d565b840191505092915050565b6000602082019050818103600083015261160181846115ae565b905092915050565b6000819050919050565b61161c81611609565b811461162757600080fd5b50565b60008135905061163981611613565b92915050565b60006020828403121561165557611654611492565b5b60006116638482850161162a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116978261166c565b9050919050565b6116a78161168c565b82525050565b60006020820190506116c2600083018461169e565b92915050565b6116d18161168c565b81146116dc57600080fd5b50565b6000813590506116ee816116c8565b92915050565b6000806040838503121561170b5761170a611492565b5b6000611719858286016116df565b925050602061172a8582860161162a565b9150509250929050565b60008060006060848603121561174d5761174c611492565b5b600061175b868287016116df565b935050602061176c868287016116df565b925050604061177d8682870161162a565b9150509250925092565b60006020828403121561179d5761179c611492565b5b60006117ab848285016116df565b91505092915050565b6117bd81611609565b82525050565b60006020820190506117d860008301846117b4565b92915050565b6117e781611521565b81146117f257600080fd5b50565b600081359050611804816117de565b92915050565b6000806040838503121561182157611820611492565b5b600061182f858286016116df565b9250506020611840858286016117f5565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61188c8261159d565b810181811067ffffffffffffffff821117156118ab576118aa611854565b5b80604052505050565b60006118be611488565b90506118ca8282611883565b919050565b600067ffffffffffffffff8211156118ea576118e9611854565b5b6118f38261159d565b9050602081019050919050565b82818337600083830152505050565b600061192261191d846118cf565b6118b4565b90508281526020810184848401111561193e5761193d61184f565b5b611949848285611900565b509392505050565b600082601f8301126119665761196561184a565b5b813561197684826020860161190f565b91505092915050565b6000806000806080858703121561199957611998611492565b5b60006119a7878288016116df565b94505060206119b8878288016116df565b93505060406119c98782880161162a565b925050606085013567ffffffffffffffff8111156119ea576119e9611497565b5b6119f687828801611951565b91505092959194509250565b60008060408385031215611a1957611a18611492565b5b6000611a27858286016116df565b9250506020611a38858286016116df565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a8957607f821691505b602082108103611a9c57611a9b611a42565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611afe602183611562565b9150611b0982611aa2565b604082019050919050565b60006020820190508181036000830152611b2d81611af1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000611b90603d83611562565b9150611b9b82611b34565b604082019050919050565b60006020820190508181036000830152611bbf81611b83565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000611c22602d83611562565b9150611c2d82611bc6565b604082019050919050565b60006020820190508181036000830152611c5181611c15565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000611c8e601883611562565b9150611c9982611c58565b602082019050919050565b60006020820190508181036000830152611cbd81611c81565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611d20602983611562565b9150611d2b82611cc4565b604082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b600081905092915050565b6000611d6c82611557565b611d768185611d56565b9350611d86818560208601611573565b80840191505092915050565b6000611d9e8285611d61565b9150611daa8284611d61565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000611e12602583611562565b9150611e1d82611db6565b604082019050919050565b60006020820190508181036000830152611e4181611e05565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ea4602483611562565b9150611eaf82611e48565b604082019050919050565b60006020820190508181036000830152611ed381611e97565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000611f10601983611562565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000611fa2603283611562565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b600061202e82612007565b6120388185612012565b9350612048818560208601611573565b6120518161159d565b840191505092915050565b6000608082019050612071600083018761169e565b61207e602083018661169e565b61208b60408301856117b4565b818103606083015261209d8184612023565b905095945050505050565b6000815190506120b7816114c8565b92915050565b6000602082840312156120d3576120d2611492565b5b60006120e1848285016120a8565b9150509291505056fea26469706673582212201a0a48262c283ec50743f75054bf658159fcaed6c3d850d4d5c501d985cf0ded64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x28C JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x18A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x14F4 JUMP JUMPDEST PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFB SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x137 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x1787 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x17C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20E PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x180A JUMP JUMPDEST PUSH2 0x7DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x276 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x1A02 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x387 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x397 JUMPI POP PUSH2 0x396 DUP3 PUSH2 0x950 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x1A71 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 0x3D9 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x481 DUP3 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E8 SWAP1 PUSH2 0x1B14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x510 PUSH2 0xA05 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x53F JUMPI POP PUSH2 0x53E DUP2 PUSH2 0x539 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST JUMPDEST PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x575 SWAP1 PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x588 DUP4 DUP4 PUSH2 0xA0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x59E PUSH2 0x598 PUSH2 0xA05 JUMP JUMPDEST DUP3 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x5DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D4 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E8 DUP4 DUP4 DUP4 PUSH2 0xB5B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x619 DUP4 PUSH2 0xE54 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x68A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FA SWAP1 PUSH2 0x1D36 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x759 SWAP1 PUSH2 0x1A71 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 0x785 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D2 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 0x7B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7EE PUSH2 0x7E7 PUSH2 0xA05 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x803 PUSH2 0x7FD PUSH2 0xA05 JUMP JUMPDEST DUP4 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x839 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x84E DUP5 DUP5 DUP5 DUP5 PUSH2 0xFFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x85F DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x869 PUSH2 0x1059 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x889 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8B4 JUMP JUMPDEST DUP1 PUSH2 0x893 DUP5 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C3 DUP2 PUSH2 0x113E JUMP JUMPDEST PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA80 DUP4 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAD2 DUP4 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB13 DUP2 DUP6 PUSH2 0x8BC JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0xB52 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB3A DUP5 PUSH2 0x430 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB7B DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBC8 SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC37 SWAP1 PUSH2 0x1EBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC4D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x117F JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC6D DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCBA SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1185 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF6 SWAP1 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0xFF0 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1008 DUP5 DUP5 DUP5 PUSH2 0xB5B JUMP JUMPDEST PUSH2 0x1014 DUP5 DUP5 DUP5 DUP5 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104A SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x107F DUP5 PUSH2 0x1312 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0x1854 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 0x10D0 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 0x1133 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x10DE JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1160 DUP4 PUSH2 0xE54 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0x1305 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x11D5 PUSH2 0xA05 JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1233 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 0x1230 SWAP2 SWAP1 PUSH2 0x20BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x12B5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1263 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 0x1268 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x12AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A4 SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1370 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1366 JUMPI PUSH2 0x1365 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x13AD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x13A3 JUMPI PUSH2 0x13A2 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x13DC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x13D2 JUMPI PUSH2 0x13D1 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1405 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x13FB JUMPI PUSH2 0x13FA PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x142A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x144D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x145C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D1 DUP2 PUSH2 0x149C JUMP JUMPDEST DUP2 EQ PUSH2 0x14DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14EE DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x150A JUMPI PUSH2 0x1509 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1518 DUP5 DUP3 DUP6 ADD PUSH2 0x14DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1536 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1551 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x152D JUMP JUMPDEST 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 0x1591 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1576 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 0x15B9 DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x15C3 DUP2 DUP6 PUSH2 0x1562 JUMP JUMPDEST SWAP4 POP PUSH2 0x15D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x15DC DUP2 PUSH2 0x159D 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 0x1601 DUP2 DUP5 PUSH2 0x15AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x161C DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP2 EQ PUSH2 0x1627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1639 DUP2 PUSH2 0x1613 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1654 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1663 DUP5 DUP3 DUP6 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1697 DUP3 PUSH2 0x166C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A7 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x169E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D1 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16EE DUP2 PUSH2 0x16C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170B JUMPI PUSH2 0x170A PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1719 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x172A DUP6 DUP3 DUP7 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x174D JUMPI PUSH2 0x174C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x175B DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x176C DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x177D DUP7 DUP3 DUP8 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17AB DUP5 DUP3 DUP6 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17BD DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17E7 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP2 EQ PUSH2 0x17F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1804 DUP2 PUSH2 0x17DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1821 JUMPI PUSH2 0x1820 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x182F DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1840 DUP6 DUP3 DUP7 ADD PUSH2 0x17F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x188C DUP3 PUSH2 0x159D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x18AB JUMPI PUSH2 0x18AA PUSH2 0x1854 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BE PUSH2 0x1488 JUMP JUMPDEST SWAP1 POP PUSH2 0x18CA DUP3 DUP3 PUSH2 0x1883 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18EA JUMPI PUSH2 0x18E9 PUSH2 0x1854 JUMP JUMPDEST JUMPDEST PUSH2 0x18F3 DUP3 PUSH2 0x159D 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 0x1922 PUSH2 0x191D DUP5 PUSH2 0x18CF JUMP JUMPDEST PUSH2 0x18B4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x184F JUMP JUMPDEST JUMPDEST PUSH2 0x1949 DUP5 DUP3 DUP6 PUSH2 0x1900 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1966 JUMPI PUSH2 0x1965 PUSH2 0x184A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1976 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x190F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1999 JUMPI PUSH2 0x1998 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A7 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x19B8 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x19C9 DUP8 DUP3 DUP9 ADD PUSH2 0x162A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EA JUMPI PUSH2 0x19E9 PUSH2 0x1497 JUMP JUMPDEST JUMPDEST PUSH2 0x19F6 DUP8 DUP3 DUP9 ADD PUSH2 0x1951 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A19 JUMPI PUSH2 0x1A18 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A27 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A38 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x1A89 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9C JUMPI PUSH2 0x1A9B PUSH2 0x1A42 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AFE PUSH1 0x21 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B09 DUP3 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 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 0x1B2D DUP2 PUSH2 0x1AF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B90 PUSH1 0x3D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B9B DUP3 PUSH2 0x1B34 JUMP JUMPDEST PUSH1 0x40 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 0x1BBF DUP2 PUSH2 0x1B83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C22 PUSH1 0x2D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2D DUP3 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x40 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 0x1C51 DUP2 PUSH2 0x1C15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8E PUSH1 0x18 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C99 DUP3 PUSH2 0x1C58 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 0x1CBD DUP2 PUSH2 0x1C81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D20 PUSH1 0x29 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D2B DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH1 0x40 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 0x1D4F DUP2 PUSH2 0x1D13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6C DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x1D76 DUP2 DUP6 PUSH2 0x1D56 JUMP JUMPDEST SWAP4 POP PUSH2 0x1D86 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9E DUP3 DUP6 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DAA DUP3 DUP5 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E12 PUSH1 0x25 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E1D DUP3 PUSH2 0x1DB6 JUMP JUMPDEST PUSH1 0x40 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 0x1E41 DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA4 PUSH1 0x24 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EAF DUP3 PUSH2 0x1E48 JUMP JUMPDEST PUSH1 0x40 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 0x1ED3 DUP2 PUSH2 0x1E97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F10 PUSH1 0x19 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F1B DUP3 PUSH2 0x1EDA 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 0x1F3F DUP2 PUSH2 0x1F03 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA2 PUSH1 0x32 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FAD DUP3 PUSH2 0x1F46 JUMP JUMPDEST PUSH1 0x40 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 0x1FD1 DUP2 PUSH2 0x1F95 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x202E DUP3 PUSH2 0x2007 JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x2012 JUMP JUMPDEST SWAP4 POP PUSH2 0x2048 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x2051 DUP2 PUSH2 0x159D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2071 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x207E PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x208B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x17B4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x209D DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20B7 DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D3 JUMPI PUSH2 0x20D2 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E1 DUP5 DUP3 DUP6 ADD PUSH2 0x20A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE EXP BASEFEE 0x26 0x2C 0x28 RETURNDATACOPY 0xC5 SMOD NUMBER 0xF7 POP SLOAD 0xBF PUSH6 0x8159FCAED6C3 0xD8 POP 0xD4 0xD5 0xC5 ADD 0xD9 DUP6 0xCF 0xD 0xED PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "628:16679:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2471:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2190:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1570:300;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;2471:98::-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;5004:179::-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2190:219::-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;2633:102::-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;4169:153::-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;4388:162::-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;13466:133:6:-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;6838:115::-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;13075:307::-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;3319:92::-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;7256:126:6:-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;15698:154::-;;;;;:::o;16558:153::-;;;;;:::o;14151:831::-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;1175:320:10:-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;7:75:22:-;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:619::-;4967:6;4975;4983;5032:2;5020:9;5011:7;5007:23;5003:32;5000:119;;;5038:79;;:::i;:::-;5000:119;5158:1;5183:53;5228:7;5219:6;5208:9;5204:22;5183:53;:::i;:::-;5173:63;;5129:117;5285:2;5311:53;5356:7;5347:6;5336:9;5332:22;5311:53;:::i;:::-;5301:63;;5256:118;5413:2;5439:53;5484:7;5475:6;5464:9;5460:22;5439:53;:::i;:::-;5429:63;;5384:118;4890:619;;;;;:::o;5515:329::-;5574:6;5623:2;5611:9;5602:7;5598:23;5594:32;5591:119;;;5629:79;;:::i;:::-;5591:119;5749:1;5774:53;5819:7;5810:6;5799:9;5795:22;5774:53;:::i;:::-;5764:63;;5720:117;5515:329;;;;:::o;5850:118::-;5937:24;5955:5;5937:24;:::i;:::-;5932:3;5925:37;5850:118;;:::o;5974:222::-;6067:4;6105:2;6094:9;6090:18;6082:26;;6118:71;6186:1;6175:9;6171:17;6162:6;6118:71;:::i;:::-;5974:222;;;;:::o;6202:116::-;6272:21;6287:5;6272:21;:::i;:::-;6265:5;6262:32;6252:60;;6308:1;6305;6298:12;6252:60;6202:116;:::o;6324:133::-;6367:5;6405:6;6392:20;6383:29;;6421:30;6445:5;6421:30;:::i;:::-;6324:133;;;;:::o;6463:468::-;6528:6;6536;6585:2;6573:9;6564:7;6560:23;6556:32;6553:119;;;6591:79;;:::i;:::-;6553:119;6711:1;6736:53;6781:7;6772:6;6761:9;6757:22;6736:53;:::i;:::-;6726:63;;6682:117;6838:2;6864:50;6906:7;6897:6;6886:9;6882:22;6864:50;:::i;:::-;6854:60;;6809:115;6463:468;;;;;:::o;6937:117::-;7046:1;7043;7036:12;7060:117;7169:1;7166;7159:12;7183:180;7231:77;7228:1;7221:88;7328:4;7325:1;7318:15;7352:4;7349:1;7342:15;7369:281;7452:27;7474:4;7452:27;:::i;:::-;7444:6;7440:40;7582:6;7570:10;7567:22;7546:18;7534:10;7531:34;7528:62;7525:88;;;7593:18;;:::i;:::-;7525:88;7633:10;7629:2;7622:22;7412:238;7369:281;;:::o;7656:129::-;7690:6;7717:20;;:::i;:::-;7707:30;;7746:33;7774:4;7766:6;7746:33;:::i;:::-;7656:129;;;:::o;7791:307::-;7852:4;7942:18;7934:6;7931:30;7928:56;;;7964:18;;:::i;:::-;7928:56;8002:29;8024:6;8002:29;:::i;:::-;7994:37;;8086:4;8080;8076:15;8068:23;;7791:307;;;:::o;8104:146::-;8201:6;8196:3;8191;8178:30;8242:1;8233:6;8228:3;8224:16;8217:27;8104:146;;;:::o;8256:423::-;8333:5;8358:65;8374:48;8415:6;8374:48;:::i;:::-;8358:65;:::i;:::-;8349:74;;8446:6;8439:5;8432:21;8484:4;8477:5;8473:16;8522:3;8513:6;8508:3;8504:16;8501:25;8498:112;;;8529:79;;:::i;:::-;8498:112;8619:54;8666:6;8661:3;8656;8619:54;:::i;:::-;8339:340;8256:423;;;;;:::o;8698:338::-;8753:5;8802:3;8795:4;8787:6;8783:17;8779:27;8769:122;;8810:79;;:::i;:::-;8769:122;8927:6;8914:20;8952:78;9026:3;9018:6;9011:4;9003:6;8999:17;8952:78;:::i;:::-;8943:87;;8759:277;8698:338;;;;:::o;9042:943::-;9137:6;9145;9153;9161;9210:3;9198:9;9189:7;9185:23;9181:33;9178:120;;;9217:79;;:::i;:::-;9178:120;9337:1;9362:53;9407:7;9398:6;9387:9;9383:22;9362:53;:::i;:::-;9352:63;;9308:117;9464:2;9490:53;9535:7;9526:6;9515:9;9511:22;9490:53;:::i;:::-;9480:63;;9435:118;9592:2;9618:53;9663:7;9654:6;9643:9;9639:22;9618:53;:::i;:::-;9608:63;;9563:118;9748:2;9737:9;9733:18;9720:32;9779:18;9771:6;9768:30;9765:117;;;9801:79;;:::i;:::-;9765:117;9906:62;9960:7;9951:6;9940:9;9936:22;9906:62;:::i;:::-;9896:72;;9691:287;9042:943;;;;;;;:::o;9991:474::-;10059:6;10067;10116:2;10104:9;10095:7;10091:23;10087:32;10084:119;;;10122:79;;:::i;:::-;10084:119;10242:1;10267:53;10312:7;10303:6;10292:9;10288:22;10267:53;:::i;:::-;10257:63;;10213:117;10369:2;10395:53;10440:7;10431:6;10420:9;10416:22;10395:53;:::i;:::-;10385:63;;10340:118;9991:474;;;;;:::o;10471:180::-;10519:77;10516:1;10509:88;10616:4;10613:1;10606:15;10640:4;10637:1;10630:15;10657:320;10701:6;10738:1;10732:4;10728:12;10718:22;;10785:1;10779:4;10775:12;10806:18;10796:81;;10862:4;10854:6;10850:17;10840:27;;10796:81;10924:2;10916:6;10913:14;10893:18;10890:38;10887:84;;10943:18;;:::i;:::-;10887:84;10708:269;10657:320;;;:::o;10983:220::-;11123:34;11119:1;11111:6;11107:14;11100:58;11192:3;11187:2;11179:6;11175:15;11168:28;10983:220;:::o;11209:366::-;11351:3;11372:67;11436:2;11431:3;11372:67;:::i;:::-;11365:74;;11448:93;11537:3;11448:93;:::i;:::-;11566:2;11561:3;11557:12;11550:19;;11209:366;;;:::o;11581:419::-;11747:4;11785:2;11774:9;11770:18;11762:26;;11834:9;11828:4;11824:20;11820:1;11809:9;11805:17;11798:47;11862:131;11988:4;11862:131;:::i;:::-;11854:139;;11581:419;;;:::o;12006:248::-;12146:34;12142:1;12134:6;12130:14;12123:58;12215:31;12210:2;12202:6;12198:15;12191:56;12006:248;:::o;12260:366::-;12402:3;12423:67;12487:2;12482:3;12423:67;:::i;:::-;12416:74;;12499:93;12588:3;12499:93;:::i;:::-;12617:2;12612:3;12608:12;12601:19;;12260:366;;;:::o;12632:419::-;12798:4;12836:2;12825:9;12821:18;12813:26;;12885:9;12879:4;12875:20;12871:1;12860:9;12856:17;12849:47;12913:131;13039:4;12913:131;:::i;:::-;12905:139;;12632:419;;;:::o;13057:232::-;13197:34;13193:1;13185:6;13181:14;13174:58;13266:15;13261:2;13253:6;13249:15;13242:40;13057:232;:::o;13295:366::-;13437:3;13458:67;13522:2;13517:3;13458:67;:::i;:::-;13451:74;;13534:93;13623:3;13534:93;:::i;:::-;13652:2;13647:3;13643:12;13636:19;;13295:366;;;:::o;13667:419::-;13833:4;13871:2;13860:9;13856:18;13848:26;;13920:9;13914:4;13910:20;13906:1;13895:9;13891:17;13884:47;13948:131;14074:4;13948:131;:::i;:::-;13940:139;;13667:419;;;:::o;14092:174::-;14232:26;14228:1;14220:6;14216:14;14209:50;14092:174;:::o;14272:366::-;14414:3;14435:67;14499:2;14494:3;14435:67;:::i;:::-;14428:74;;14511:93;14600:3;14511:93;:::i;:::-;14629:2;14624:3;14620:12;14613:19;;14272:366;;;:::o;14644:419::-;14810:4;14848:2;14837:9;14833:18;14825:26;;14897:9;14891:4;14887:20;14883:1;14872:9;14868:17;14861:47;14925:131;15051:4;14925:131;:::i;:::-;14917:139;;14644:419;;;:::o;15069:228::-;15209:34;15205:1;15197:6;15193:14;15186:58;15278:11;15273:2;15265:6;15261:15;15254:36;15069:228;:::o;15303:366::-;15445:3;15466:67;15530:2;15525:3;15466:67;:::i;:::-;15459:74;;15542:93;15631:3;15542:93;:::i;:::-;15660:2;15655:3;15651:12;15644:19;;15303:366;;;:::o;15675:419::-;15841:4;15879:2;15868:9;15864:18;15856:26;;15928:9;15922:4;15918:20;15914:1;15903:9;15899:17;15892:47;15956:131;16082:4;15956:131;:::i;:::-;15948:139;;15675:419;;;:::o;16100:148::-;16202:11;16239:3;16224:18;;16100:148;;;;:::o;16254:390::-;16360:3;16388:39;16421:5;16388:39;:::i;:::-;16443:89;16525:6;16520:3;16443:89;:::i;:::-;16436:96;;16541:65;16599:6;16594:3;16587:4;16580:5;16576:16;16541:65;:::i;:::-;16631:6;16626:3;16622:16;16615:23;;16364:280;16254:390;;;;:::o;16650:435::-;16830:3;16852:95;16943:3;16934:6;16852:95;:::i;:::-;16845:102;;16964:95;17055:3;17046:6;16964:95;:::i;:::-;16957:102;;17076:3;17069:10;;16650:435;;;;;:::o;17091:224::-;17231:34;17227:1;17219:6;17215:14;17208:58;17300:7;17295:2;17287:6;17283:15;17276:32;17091:224;:::o;17321:366::-;17463:3;17484:67;17548:2;17543:3;17484:67;:::i;:::-;17477:74;;17560:93;17649:3;17560:93;:::i;:::-;17678:2;17673:3;17669:12;17662:19;;17321:366;;;:::o;17693:419::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17946:9;17940:4;17936:20;17932:1;17921:9;17917:17;17910:47;17974:131;18100:4;17974:131;:::i;:::-;17966:139;;17693:419;;;:::o;18118:223::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:6;18322:2;18314:6;18310:15;18303:31;18118:223;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:175::-;19284:27;19280:1;19272:6;19268:14;19261:51;19144:175;:::o;19325:366::-;19467:3;19488:67;19552:2;19547:3;19488:67;:::i;:::-;19481:74;;19564:93;19653:3;19564:93;:::i;:::-;19682:2;19677:3;19673:12;19666:19;;19325:366;;;:::o;19697:419::-;19863:4;19901:2;19890:9;19886:18;19878:26;;19950:9;19944:4;19940:20;19936:1;19925:9;19921:17;19914:47;19978:131;20104:4;19978:131;:::i;:::-;19970:139;;19697:419;;;:::o;20122:237::-;20262:34;20258:1;20250:6;20246:14;20239:58;20331:20;20326:2;20318:6;20314:15;20307:45;20122:237;:::o;20365:366::-;20507:3;20528:67;20592:2;20587:3;20528:67;:::i;:::-;20521:74;;20604:93;20693:3;20604:93;:::i;:::-;20722:2;20717:3;20713:12;20706:19;;20365:366;;;:::o;20737:419::-;20903:4;20941:2;20930:9;20926:18;20918:26;;20990:9;20984:4;20980:20;20976:1;20965:9;20961:17;20954:47;21018:131;21144:4;21018:131;:::i;:::-;21010:139;;20737:419;;;:::o;21162:180::-;21210:77;21207:1;21200:88;21307:4;21304:1;21297:15;21331:4;21328:1;21321:15;21348:98;21399:6;21433:5;21427:12;21417:22;;21348:98;;;:::o;21452:168::-;21535:11;21569:6;21564:3;21557:19;21609:4;21604:3;21600:14;21585:29;;21452:168;;;;:::o;21626:373::-;21712:3;21740:38;21772:5;21740:38;:::i;:::-;21794:70;21857:6;21852:3;21794:70;:::i;:::-;21787:77;;21873:65;21931:6;21926:3;21919:4;21912:5;21908:16;21873:65;:::i;:::-;21963:29;21985:6;21963:29;:::i;:::-;21958:3;21954:39;21947:46;;21716:283;21626:373;;;;:::o;22005:640::-;22200:4;22238:3;22227:9;22223:19;22215:27;;22252:71;22320:1;22309:9;22305:17;22296:6;22252:71;:::i;:::-;22333:72;22401:2;22390:9;22386:18;22377:6;22333:72;:::i;:::-;22415;22483:2;22472:9;22468:18;22459:6;22415:72;:::i;:::-;22534:9;22528:4;22524:20;22519:2;22508:9;22504:18;22497:48;22562:76;22633:4;22624:6;22562:76;:::i;:::-;22554:84;;22005:640;;;;;;;:::o;22651:141::-;22707:5;22738:6;22732:13;22723:22;;22754:32;22780:5;22754:32;:::i;:::-;22651:141;;;;:::o;22798:349::-;22867:6;22916:2;22904:9;22895:7;22891:23;22887:32;22884:119;;;22922:79;;:::i;:::-;22884:119;23042:1;23067:63;23122:7;23113:6;23102:9;23098:22;23067:63;:::i;:::-;23057:73;;23013:127;22798:349;;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Address.sol": { + "Address": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201456f7767f46f239da11f81368573b480f6d8de2e2a321dadf5bcd65d1c39d7564736f6c63430008110033", + "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 EQ JUMP 0xF7 PUSH23 0x7F46F239DA11F81368573B480F6D8DE2E2A321DADF5BCD PUSH6 0xD1C39D756473 PUSH16 0x6C634300081100330000000000000000 ", + "sourceMap": "194:8964:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201456f7767f46f239da11f81368573b480f6d8de2e2a321dadf5bcd65d1c39d7564736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ JUMP 0xF7 PUSH23 0x7F46F239DA11F81368573B480F6D8DE2E2A321DADF5BCD PUSH6 0xD1C39D756473 PUSH16 0x6C634300081100330000000000000000 ", + "sourceMap": "194:8964:10:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"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.17+commit.8df45f5f\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "Counters": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202bae9536ac7c538ee977f17079d929e640d7dab035bace3465e2b533fa3038ef64736f6c63430008110033", + "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 0x2B 0xAE SWAP6 CALLDATASIZE 0xAC PUSH29 0x538EE977F17079D929E640D7DAB035BACE3465E2B533FA3038EF64736F PUSH13 0x63430008110033000000000000 ", + "sourceMap": "424:971:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202bae9536ac7c538ee977f17079d929e640d7dab035bace3465e2b533fa3038ef64736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B 0xAE SWAP6 CALLDATASIZE 0xAC PUSH29 0x538EE977F17079D929E640D7DAB035BACE3465E2B533FA3038EF64736F PUSH13 0x63430008110033000000000000 ", + "sourceMap": "424:971:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205377adc79bb987de03049c655529acbf51a3f7d36bb14c89a2d2f790fee54d6064736f6c63430008110033", + "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 MSTORE8 PUSH24 0xADC79BB987DE03049C655529ACBF51A3F7D36BB14C89A2D2 0xF7 SWAP1 INVALID 0xE5 0x4D PUSH1 0x64 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "188:2065:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205377adc79bb987de03049c655529acbf51a3f7d36bb14c89a2d2f790fee54d6064736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE8 PUSH24 0xADC79BB987DE03049C655529ACBF51A3F7D36BB14C89A2D2 0xF7 SWAP1 INVALID 0xE5 0x4D PUSH1 0x64 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "188:2065:13:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"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.17+commit.8df45f5f\"},\"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); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"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.17+commit.8df45f5f\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200deb2d155cc73fbf04f3651b35566c36121307684f46e0e4f511e6d6a66133ad64736f6c63430008110033", + "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 0xD 0xEB 0x2D ISZERO 0x5C 0xC7 EXTCODEHASH 0xBF DIV RETURN PUSH6 0x1B35566C3612 SGT SMOD PUSH9 0x4F46E0E4F511E6D6A6 PUSH2 0x33AD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12302:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200deb2d155cc73fbf04f3651b35566c36121307684f46e0e4f511e6d6a66133ad64736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD 0xEB 0x2D ISZERO 0x5C 0xC7 EXTCODEHASH 0xBF DIV RETURN PUSH6 0x1B35566C3612 SGT SMOD PUSH9 0x4F46E0E4F511E6D6A6 PUSH2 0x33AD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12302:16:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}" + } + }, + "contracts/ERC5725.sol": { + "ERC5725": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_payoutClaimed\":{\"details\":\"mapping for claimed payouts\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC5725.sol\":\"ERC5725\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]}},\"version\":1}" + } + }, + "contracts/IERC5725.sol": { + "IERC5725": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT.\",\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"params\":{\"claimAmount\":\"The amount of tokens being claimed.\",\"recipient\":\"The address which is receiving the payout.\",\"tokenId\":\"the NFT tokenId of the assets being claimed.\"}}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"claim(uint256)\":{\"details\":\"MUST grant the claimablePayout value at the time of claim being called MUST revert if not called by the token owner or approved users MUST emit PayoutClaimed SHOULD revert if there is nothing to claim\",\"params\":{\"tokenId\":\"The NFT token id\"}},\"claimablePayout(uint256)\":{\"details\":\"It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The amount of unlocked payout tokens for the NFT which have not yet been claimed\"}},\"claimedPayout(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The total amount of payout tokens claimed for this NFT\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"payoutToken(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"token\":\"The token which is used to pay out the vesting claims\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"vestedPayout(uint256)\":{\"details\":\"It is RECOMMENDED that this function calls `vestedPayoutAtTime` with `block.timestamp` as the `timestamp` parameter.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"Total amount of tokens which have been vested at the current timestamp.\"}},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"`timestamp` MAY be both in the future and in the past. Zero MUST be returned if the timestamp is before the token was minted.\",\"params\":{\"timestamp\":\"The timestamp to check on, can be both in the past and the future\",\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"Total amount of tokens which have been vested at the provided timestamp\"}},\"vestingPayout(uint256)\":{\"details\":\"The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The number of tokens for the NFT which are vesting until a future date.\"}},\"vestingPeriod(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"vestingEnd\":\"The ending of the vesting as a unix timestamp\",\"vestingStart\":\"The beginning of the vesting as a unix timestamp\"}}},\"title\":\"Non-Fungible Vesting Token Standard\",\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"claim(uint256)\":{\"notice\":\"Claim the pending payout for the NFT\"},\"claimablePayout(uint256)\":{\"notice\":\"Number of tokens for the NFT which can be claimed at the current timestamp\"},\"claimedPayout(uint256)\":{\"notice\":\"Number of tokens for the NFT which have been claimed at the current timestamp\"},\"payoutToken(uint256)\":{\"notice\":\"Token which is used to pay out the vesting claims\"},\"vestedPayout(uint256)\":{\"notice\":\"Total amount of tokens which have been vested at the current timestamp. This number also includes vested tokens which have been claimed.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"notice\":\"Total amount of vested tokens at the provided timestamp. This number also includes vested tokens which have been claimed.\"},\"vestingPayout(uint256)\":{\"notice\":\"Number of tokens for an NFT which are currently vesting.\"},\"vestingPeriod(uint256)\":{\"notice\":\"The start and end timestamps for the vesting of the provided NFT MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\"}},\"notice\":\"A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve scheduled using timestamps.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IERC5725.sol\":\"IERC5725\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]}},\"version\":1}" + } + }, + "contracts/mocks/ERC20Mock.sol": { + "ERC20Mock": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "supply_", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "decimals_", + "type": "uint8" + }, + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_157": { + "entryPoint": null, + "id": 157, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4108": { + "entryPoint": null, + "id": 4108, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_afterTokenTransfer_698": { + "entryPoint": 520, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 515, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_516": { + "entryPoint": 150, + "id": 516, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 923, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 998, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 581, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint8_fromMemory": { + "entryPoint": 643, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 1049, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2091, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 2270, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2130, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 2287, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 794, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 525, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 825, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1336, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1225, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2033, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 2211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1647, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 545, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1608, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1802, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 879, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1357, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1772, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 740, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1472, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1740, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 2164, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 1236, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 693, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1522, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 666, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 671, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 540, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 535, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 676, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1727, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1580, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 2050, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1386, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1532, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 555, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint8": { + "entryPoint": 617, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1575, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:11415:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:22", + "type": "" + } + ], + "src": "334:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:22" + }, + "nodeType": "YulIf", + "src": "470:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:22", + "type": "" + } + ], + "src": "417:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "608:80:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "618:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "633:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "627:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "618:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "649:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "649:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "649:33:22" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "586:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "594:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "602:5:22", + "type": "" + } + ], + "src": "545:143:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "737:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "747:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "762:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "769:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "758:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "758:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "747:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "719:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "729:7:22", + "type": "" + } + ], + "src": "694:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "827:77:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "882:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "891:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "894:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "884:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "884:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "884:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "850:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "873:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "857:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "857:22:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "847:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:33:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "840:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:41:22" + }, + "nodeType": "YulIf", + "src": "837:61:22" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "820:5:22", + "type": "" + } + ], + "src": "786:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "971:78:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "981:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "996:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "990:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "990:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "981:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1037:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "1012:24:22" + }, + "nodeType": "YulFunctionCall", + "src": "1012:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1012:31:22" + } + ] + }, + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "949:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "957:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "965:5:22", + "type": "" + } + ], + "src": "910:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1144:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1161:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1164:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1154:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1055:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1267:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1284:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1287:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1277:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1277:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1277:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "1178:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1349:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1359:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1377:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1384:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1373:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1373:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1393:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1389:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1389:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1369:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1369:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1359:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1332:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1342:6:22", + "type": "" + } + ], + "src": "1301:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1437:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1454:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1457:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1447:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1447:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1551:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1544:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1544:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1575:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1578:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1568:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1568:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1568:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1409:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1638:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1648:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1670:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1700:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1678:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1678:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1666:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1666:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1652:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1817:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1819:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1819:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1819:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1760:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1757:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1757:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1796:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1808:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1793:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1793:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1754:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1754:62:22" + }, + "nodeType": "YulIf", + "src": "1751:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1855:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1859:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1848:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1848:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1848:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1624:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1632:4:22", + "type": "" + } + ], + "src": "1595:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1923:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1933:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1943:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1943:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1933:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1992:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2000:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1972:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1972:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1972:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1907:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1916:6:22", + "type": "" + } + ], + "src": "1882:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2084:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2189:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2191:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "2191:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2191:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2161:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2169:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2158:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2158:30:22" + }, + "nodeType": "YulIf", + "src": "2155:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "2221:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2251:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2229:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "2229:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2221:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2295:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2307:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2313:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2303:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2303:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2295:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2079:4:22", + "type": "" + } + ], + "src": "2017:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2393:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2403:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2412:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2407:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2497:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2502:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2493:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2493:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2516:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2521:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2512:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2512:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2506:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2506:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2486:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2486:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2486:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2433:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2436:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2430:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2430:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2444:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2446:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2455:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2458:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2451:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2451:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2446:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2426:3:22", + "statements": [] + }, + "src": "2422:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2555:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2560:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2551:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2551:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2569:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2544:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2380:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2385:6:22", + "type": "" + } + ], + "src": "2331:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2678:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2688:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2755:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2713:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "2713:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2697:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "2697:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2688:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2779:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2786:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2772:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2772:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2772:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2802:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2817:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2824:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2813:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2813:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2806:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2867:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2869:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2869:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2869:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2848:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2853:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2844:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2844:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2862:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2841:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2841:25:22" + }, + "nodeType": "YulIf", + "src": "2838:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2994:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2999:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3004:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2959:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2959:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2651:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2656:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2664:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2672:5:22", + "type": "" + } + ], + "src": "2583:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3110:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3159:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3161:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3161:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3161:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3138:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3146:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3134:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3153:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3130:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3123:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3123:35:22" + }, + "nodeType": "YulIf", + "src": "3120:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3251:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3271:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3265:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3265:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3255:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3287:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3359:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3367:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3355:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3374:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3382:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3296:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "3296:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3287:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3088:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3096:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "3104:5:22", + "type": "" + } + ], + "src": "3037:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3544:1016:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3591:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3593:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3593:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3593:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3565:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3574:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3561:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3561:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3586:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3557:33:22" + }, + "nodeType": "YulIf", + "src": "3554:120:22" + }, + { + "nodeType": "YulBlock", + "src": "3684:128:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3699:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3713:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3703:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3728:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3785:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3770:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3794:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "3738:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "3738:64:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3728:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3822:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3837:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3851:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3841:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3867:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3911:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3922:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3907:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3907:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3931:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulIdentifier", + "src": "3877:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "3877:62:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3867:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3959:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3974:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3998:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4009:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3994:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3994:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3988:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3988:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3978:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4060:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4062:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4062:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4062:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4032:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4040:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4029:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4029:30:22" + }, + "nodeType": "YulIf", + "src": "4026:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "4157:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4213:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4224:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4209:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4209:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4233:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4167:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "4167:74:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4157:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4261:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4276:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4300:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4311:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4296:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4296:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4290:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4290:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4280:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4362:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4364:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4364:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4334:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4342:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4331:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4331:30:22" + }, + "nodeType": "YulIf", + "src": "4328:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "4459:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4515:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4526:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4511:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4511:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4535:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4469:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "4469:74:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4459:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3490:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3501:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3513:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3521:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3529:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3537:6:22", + "type": "" + } + ], + "src": "3398:1162:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4625:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4636:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4652:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4646:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4646:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4636:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4608:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4618:6:22", + "type": "" + } + ], + "src": "4566:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4699:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4716:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4719:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4709:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4709:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4709:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4813:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4816:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4806:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4806:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4806:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4840:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4830:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4830:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4830:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "4671:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4908:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4918:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4932:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4938:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4928:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4928:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4918:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4949:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4979:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4985:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4975:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "4953:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5040:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5054:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5062:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5050:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5050:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5040:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5006:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4999:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4999:26:22" + }, + "nodeType": "YulIf", + "src": "4996:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5129:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "5143:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5143:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5093:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5116:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5124:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5113:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5113:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5090:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5090:38:22" + }, + "nodeType": "YulIf", + "src": "5087:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4892:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4901:6:22", + "type": "" + } + ], + "src": "4857:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5237:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5247:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5255:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5247:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5275:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5278:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5268:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5268:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5268:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "5291:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5309:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5312:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "5299:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "5299:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5291:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5224:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5232:4:22", + "type": "" + } + ], + "src": "5183:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5374:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5384:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5402:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5409:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5398:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5398:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5394:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5394:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5384:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5357:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5367:6:22", + "type": "" + } + ], + "src": "5330:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5482:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5492:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "5517:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5523:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5513:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5513:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "5492:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "5457:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5463:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "5473:8:22", + "type": "" + } + ], + "src": "5429:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5618:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5628:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "5649:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5661:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "5645:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5645:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "5632:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5672:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5703:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5714:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5684:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "5684:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "5676:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5790:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5821:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5832:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5802:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "5802:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5790:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5850:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5863:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5874:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "5870:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5870:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5859:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5859:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5850:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5889:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5902:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5913:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5923:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5909:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5909:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "5899:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5899:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5889:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5579:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "5586:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "5598:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5611:6:22", + "type": "" + } + ], + "src": "5542:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5973:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5983:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5990:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5983:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5959:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5969:3:22", + "type": "" + } + ], + "src": "5941:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6067:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6077:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6135:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6117:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6117:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "6108:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "6108:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6090:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6090:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "6077:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6047:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "6057:9:22", + "type": "" + } + ], + "src": "6007:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6202:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6212:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6219:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6212:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6188:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6198:3:22", + "type": "" + } + ], + "src": "6155:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6312:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6322:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "6377:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6346:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "6346:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "6326:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6401:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6441:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "6435:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "6435:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6448:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "6480:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "6456:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "6456:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "6407:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "6407:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "6394:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6394:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6394:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6289:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6295:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "6303:7:22", + "type": "" + } + ], + "src": "6236:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6560:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6570:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6577:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6570:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6556:3:22", + "type": "" + } + ], + "src": "6511:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6643:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6653:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "6667:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "6667:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "6657:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6752:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6758:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "6766:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6708:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "6708:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6708:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6629:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6635:6:22", + "type": "" + } + ], + "src": "6590:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6835:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6902:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6946:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6953:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "6916:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "6916:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6916:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6855:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6862:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6852:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6852:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "6867:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6869:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6882:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6889:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6878:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6878:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6869:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "6849:2:22", + "statements": [] + }, + "src": "6845:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "6823:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6830:3:22", + "type": "" + } + ], + "src": "6785:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7056:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7082:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7096:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7144:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7112:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7112:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "7100:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7163:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7186:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7214:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7196:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "7196:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7182:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7182:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "7167:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7383:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7385:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7400:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7385:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7367:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7379:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7364:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7364:18:22" + }, + "nodeType": "YulIf", + "src": "7361:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7452:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7469:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7497:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7479:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "7479:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7465:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7465:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "7423:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "7423:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7423:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7073:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7078:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7070:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7070:11:22" + }, + "nodeType": "YulIf", + "src": "7067:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7032:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7039:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "7044:10:22", + "type": "" + } + ], + "src": "6977:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7589:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7599:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "7624:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7630:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "7620:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7620:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "7599:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "7564:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "7580:8:22", + "type": "" + } + ], + "src": "7526:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7700:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7710:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7759:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "7762:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7755:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7774:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7770:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "7726:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "7726:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7722:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7722:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "7714:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7787:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7801:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "7807:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7797:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7797:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "7787:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7677:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "7683:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "7693:6:22", + "type": "" + } + ], + "src": "7649:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7904:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8037:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8064:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8070:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8045:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8045:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8037:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8083:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8094:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8104:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8107:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8100:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8100:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "8083:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7885:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7891:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "7899:4:22", + "type": "" + } + ], + "src": "7823:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8215:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8226:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8273:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8240:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "8240:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "8230:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8362:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "8364:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "8364:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8364:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8334:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8342:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8331:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8331:30:22" + }, + "nodeType": "YulIf", + "src": "8328:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8394:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8440:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "8434:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8434:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "8408:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "8408:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "8398:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8539:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "8545:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8553:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8493:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "8493:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8493:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8570:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8587:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "8574:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8598:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8611:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8598:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8662:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8676:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8695:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8707:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "8703:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8703:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8691:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8691:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "8680:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8727:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8773:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8741:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "8741:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "8731:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8791:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8800:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "8795:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8859:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8884:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8902:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8907:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8898:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8892:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8892:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8877:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8877:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8877:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "8936:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8950:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8958:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8946:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8946:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8936:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8977:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8994:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9005:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8990:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8977:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8825:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8828:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8822:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8822:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8837:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8839:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8848:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8844:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8844:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8839:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8818:3:22", + "statements": [] + }, + "src": "8814:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9058:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9076:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9103:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9108:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9099:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9099:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9093:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "9093:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "9080:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "9143:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "9170:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9185:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9193:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9181:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "9151:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "9151:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9136:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9136:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9136:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "9041:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9050:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9038:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9038:19:22" + }, + "nodeType": "YulIf", + "src": "9035:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9234:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9248:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9256:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "9244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9244:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9260:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9240:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9227:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9227:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9227:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8655:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8660:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9290:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9304:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9317:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9308:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9341:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9359:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9378:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9383:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9374:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9374:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9368:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "9368:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9359:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9334:6:22" + }, + "nodeType": "YulIf", + "src": "9331:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9428:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9487:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9494:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "9434:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "9434:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9421:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9421:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9421:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "9282:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8635:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8643:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8632:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8632:14:22" + }, + "nodeType": "YulSwitch", + "src": "8625:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "8204:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8210:3:22", + "type": "" + } + ], + "src": "8123:1395:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9620:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9637:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9642:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9630:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9630:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9630:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "9658:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9677:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9682:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9673:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "9658:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9592:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "9597:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "9608:11:22", + "type": "" + } + ], + "src": "9524:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9805:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9827:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9835:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9823:14:22" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9839:33:22", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9816:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9816:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9816:57:22" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9797:6:22", + "type": "" + } + ], + "src": "9699:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10032:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10042:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10108:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10113:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10049:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "10049:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10042:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10214:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulIdentifier", + "src": "10125:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10125:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10125:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10227:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10238:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10243:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10234:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10227:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10020:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10028:3:22", + "type": "" + } + ], + "src": "9886:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10429:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10439:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10451:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10462:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10447:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10447:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10439:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10486:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10497:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10482:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10482:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10505:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10511:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10501:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10475:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10475:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10475:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10531:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10665:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10539:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10539:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10531:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10409:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10424:4:22", + "type": "" + } + ], + "src": "10258:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10711:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10728:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10731:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10721:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10721:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10721:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10825:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10828:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10818:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10818:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10818:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10849:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10852:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10842:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10842:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10842:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "10683:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10913:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10923:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10946:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10928:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10928:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10923:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10957:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10980:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10962:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10962:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10957:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10991:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11002:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11005:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10998:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10998:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10991:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11031:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "11033:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "11033:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11033:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11023:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "11026:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11020:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11020:10:22" + }, + "nodeType": "YulIf", + "src": "11017:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10900:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10903:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10909:3:22", + "type": "" + } + ], + "src": "10869:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11131:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11148:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11171:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11153:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "11153:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11141:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11141:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11141:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11119:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11126:3:22", + "type": "" + } + ], + "src": "11066:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11288:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11298:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11310:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11321:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11306:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11306:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11298:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11378:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11391:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11402:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11387:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11387:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11334:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "11334:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11334:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11260:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11272:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11283:4:22", + "type": "" + } + ], + "src": "11190:222:22" + } + ] + }, + "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_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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint8(value)\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 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 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_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory(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_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := 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 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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\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_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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162001d9038038062001d90833981810160405281019062000037919062000419565b818181600390816200004a91906200070a565b5080600490816200005c91906200070a565b5050506200007133856200009660201b60201c565b82600560006101000a81548160ff021916908360ff160217905550505050506200090c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000108576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ff9062000852565b60405180910390fd5b6200011c600083836200020360201b60201c565b8060026000828254620001309190620008a3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001e39190620008ef565b60405180910390a3620001ff600083836200020860201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620002368162000221565b81146200024257600080fd5b50565b60008151905062000256816200022b565b92915050565b600060ff82169050919050565b62000274816200025c565b81146200028057600080fd5b50565b600081519050620002948162000269565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002ef82620002a4565b810181811067ffffffffffffffff82111715620003115762000310620002b5565b5b80604052505050565b6000620003266200020d565b9050620003348282620002e4565b919050565b600067ffffffffffffffff821115620003575762000356620002b5565b5b6200036282620002a4565b9050602081019050919050565b60005b838110156200038f57808201518184015260208101905062000372565b60008484015250505050565b6000620003b2620003ac8462000339565b6200031a565b905082815260208101848484011115620003d157620003d06200029f565b5b620003de8482856200036f565b509392505050565b600082601f830112620003fe57620003fd6200029a565b5b8151620004108482602086016200039b565b91505092915050565b6000806000806080858703121562000436576200043562000217565b5b6000620004468782880162000245565b9450506020620004598782880162000283565b935050604085015167ffffffffffffffff8111156200047d576200047c6200021c565b5b6200048b87828801620003e6565b925050606085015167ffffffffffffffff811115620004af57620004ae6200021c565b5b620004bd87828801620003e6565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051c57607f821691505b602082108103620005325762000531620004d4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200059c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200055d565b620005a886836200055d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620005eb620005e5620005df8462000221565b620005c0565b62000221565b9050919050565b6000819050919050565b6200060783620005ca565b6200061f6200061682620005f2565b8484546200056a565b825550505050565b600090565b6200063662000627565b62000643818484620005fc565b505050565b5b818110156200066b576200065f6000826200062c565b60018101905062000649565b5050565b601f821115620006ba57620006848162000538565b6200068f846200054d565b810160208510156200069f578190505b620006b7620006ae856200054d565b83018262000648565b50505b505050565b600082821c905092915050565b6000620006df60001984600802620006bf565b1980831691505092915050565b6000620006fa8383620006cc565b9150826002028217905092915050565b6200071582620004c9565b67ffffffffffffffff811115620007315762000730620002b5565b5b6200073d825462000503565b6200074a8282856200066f565b600060209050601f8311600181146200078257600084156200076d578287015190505b620007798582620006ec565b865550620007e9565b601f198416620007928662000538565b60005b82811015620007bc5784890151825560018201915060208501945060208101905062000795565b86831015620007dc5784890151620007d8601f891682620006cc565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200083a601f83620007f1565b9150620008478262000802565b602082019050919050565b600060208201905081810360008301526200086d816200082b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008b08262000221565b9150620008bd8362000221565b9250828201905080821115620008d857620008d762000874565b5b92915050565b620008e98162000221565b82525050565b6000602082019050620009066000830184620008de565b92915050565b611474806200091c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806394bf804d146101d357806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ca5565b60405180910390f35b6100f160048036038101906100ec9190610d60565b61032f565b6040516100fe9190610dbb565b60405180910390f35b61010f610352565b60405161011c9190610de5565b60405180910390f35b61013f600480360381019061013a9190610e00565b61035c565b60405161014c9190610dbb565b60405180910390f35b61015d61038b565b60405161016a9190610e6f565b60405180910390f35b61018d60048036038101906101889190610d60565b6103a2565b60405161019a9190610dbb565b60405180910390f35b6101bd60048036038101906101b89190610e8a565b6103d9565b6040516101ca9190610de5565b60405180910390f35b6101ed60048036038101906101e89190610eb7565b610421565b005b6101f761042f565b6040516102049190610ca5565b60405180910390f35b61022760048036038101906102229190610d60565b6104c1565b6040516102349190610dbb565b60405180910390f35b61025760048036038101906102529190610d60565b610538565b6040516102649190610dbb565b60405180910390f35b61028760048036038101906102829190610ef7565b61055b565b6040516102949190610de5565b60405180910390f35b6060600380546102ac90610f66565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890610f66565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105e2565b90506103478185856105ea565b600191505092915050565b6000600254905090565b6000806103676105e2565b90506103748582856107b3565b61037f85858561083f565b60019150509392505050565b6000600560009054906101000a900460ff16905090565b6000806103ad6105e2565b90506103ce8185856103bf858961055b565b6103c99190610fc6565b6105ea565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61042b8183610ab5565b5050565b60606004805461043e90610f66565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90610f66565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105e2565b905060006104da828661055b565b90508381101561051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105169061106c565b60405180910390fd5b61052c82868684036105ea565b60019250505092915050565b6000806105436105e2565b905061055081858561083f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906110fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90611190565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107a69190610de5565b60405180910390a3505050565b60006107bf848461055b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610839578181101561082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906111fc565b60405180910390fd5b61083884848484036105ea565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a59061128e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611320565b60405180910390fd5b610928838383610c0b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906113b2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190610de5565b60405180910390a3610aaf848484610c10565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061141e565b60405180910390fd5b610b3060008383610c0b565b8060026000828254610b429190610fc6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf39190610de5565b60405180910390a3610c0760008383610c10565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c4f578082015181840152602081019050610c34565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c7782610c15565b610c818185610c20565b9350610c91818560208601610c31565b610c9a81610c5b565b840191505092915050565b60006020820190508181036000830152610cbf8184610c6c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cf782610ccc565b9050919050565b610d0781610cec565b8114610d1257600080fd5b50565b600081359050610d2481610cfe565b92915050565b6000819050919050565b610d3d81610d2a565b8114610d4857600080fd5b50565b600081359050610d5a81610d34565b92915050565b60008060408385031215610d7757610d76610cc7565b5b6000610d8585828601610d15565b9250506020610d9685828601610d4b565b9150509250929050565b60008115159050919050565b610db581610da0565b82525050565b6000602082019050610dd06000830184610dac565b92915050565b610ddf81610d2a565b82525050565b6000602082019050610dfa6000830184610dd6565b92915050565b600080600060608486031215610e1957610e18610cc7565b5b6000610e2786828701610d15565b9350506020610e3886828701610d15565b9250506040610e4986828701610d4b565b9150509250925092565b600060ff82169050919050565b610e6981610e53565b82525050565b6000602082019050610e846000830184610e60565b92915050565b600060208284031215610ea057610e9f610cc7565b5b6000610eae84828501610d15565b91505092915050565b60008060408385031215610ece57610ecd610cc7565b5b6000610edc85828601610d4b565b9250506020610eed85828601610d15565b9150509250929050565b60008060408385031215610f0e57610f0d610cc7565b5b6000610f1c85828601610d15565b9250506020610f2d85828601610d15565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f7e57607f821691505b602082108103610f9157610f90610f37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fd182610d2a565b9150610fdc83610d2a565b9250828201905080821115610ff457610ff3610f97565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611056602583610c20565b915061106182610ffa565b604082019050919050565b6000602082019050818103600083015261108581611049565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110e8602483610c20565b91506110f38261108c565b604082019050919050565b60006020820190508181036000830152611117816110db565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061117a602283610c20565b91506111858261111e565b604082019050919050565b600060208201905081810360008301526111a98161116d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006111e6601d83610c20565b91506111f1826111b0565b602082019050919050565b60006020820190508181036000830152611215816111d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611278602583610c20565b91506112838261121c565b604082019050919050565b600060208201905081810360008301526112a78161126b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061130a602383610c20565b9150611315826112ae565b604082019050919050565b60006020820190508181036000830152611339816112fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061139c602683610c20565b91506113a782611340565b604082019050919050565b600060208201905081810360008301526113cb8161138f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611408601f83610c20565b9150611413826113d2565b602082019050919050565b60006020820190508181036000830152611437816113fb565b905091905056fea264697066735822122056bb00867acafc81995b24f4c182eb7b3197d323b92e8b72d53757030b0a420164736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1D90 CODESIZE SUB DUP1 PUSH3 0x1D90 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x419 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x70A JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x70A JUMP JUMPDEST POP POP POP PUSH3 0x71 CALLER DUP6 PUSH3 0x96 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0x90C JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x108 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xFF SWAP1 PUSH3 0x852 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x11C PUSH1 0x0 DUP4 DUP4 PUSH3 0x203 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x130 SWAP2 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x1E3 SWAP2 SWAP1 PUSH3 0x8EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x1FF PUSH1 0x0 DUP4 DUP4 PUSH3 0x208 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x236 DUP2 PUSH3 0x221 JUMP JUMPDEST DUP2 EQ PUSH3 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x256 DUP2 PUSH3 0x22B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x274 DUP2 PUSH3 0x25C JUMP JUMPDEST DUP2 EQ PUSH3 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x294 DUP2 PUSH3 0x269 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 PUSH3 0x2EF DUP3 PUSH3 0x2A4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x311 JUMPI PUSH3 0x310 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x20D JUMP JUMPDEST SWAP1 POP PUSH3 0x334 DUP3 DUP3 PUSH3 0x2E4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x357 JUMPI PUSH3 0x356 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x362 DUP3 PUSH3 0x2A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x38F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x372 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B2 PUSH3 0x3AC DUP5 PUSH3 0x339 JUMP JUMPDEST PUSH3 0x31A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3D1 JUMPI PUSH3 0x3D0 PUSH3 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x3DE DUP5 DUP3 DUP6 PUSH3 0x36F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x3FE JUMPI PUSH3 0x3FD PUSH3 0x29A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x410 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x39B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x436 JUMPI PUSH3 0x435 PUSH3 0x217 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x446 DUP8 DUP3 DUP9 ADD PUSH3 0x245 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH3 0x459 DUP8 DUP3 DUP9 ADD PUSH3 0x283 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x47D JUMPI PUSH3 0x47C PUSH3 0x21C JUMP JUMPDEST JUMPDEST PUSH3 0x48B DUP8 DUP3 DUP9 ADD PUSH3 0x3E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4AF JUMPI PUSH3 0x4AE PUSH3 0x21C JUMP JUMPDEST JUMPDEST PUSH3 0x4BD DUP8 DUP3 DUP9 ADD PUSH3 0x3E6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 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 PUSH3 0x51C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x532 JUMPI PUSH3 0x531 PUSH3 0x4D4 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 PUSH3 0x59C PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x55D JUMP JUMPDEST PUSH3 0x5A8 DUP7 DUP4 PUSH3 0x55D 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 PUSH3 0x5EB PUSH3 0x5E5 PUSH3 0x5DF DUP5 PUSH3 0x221 JUMP JUMPDEST PUSH3 0x5C0 JUMP JUMPDEST PUSH3 0x221 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x607 DUP4 PUSH3 0x5CA JUMP JUMPDEST PUSH3 0x61F PUSH3 0x616 DUP3 PUSH3 0x5F2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x56A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x636 PUSH3 0x627 JUMP JUMPDEST PUSH3 0x643 DUP2 DUP5 DUP5 PUSH3 0x5FC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x66B JUMPI PUSH3 0x65F PUSH1 0x0 DUP3 PUSH3 0x62C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x649 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x6BA JUMPI PUSH3 0x684 DUP2 PUSH3 0x538 JUMP JUMPDEST PUSH3 0x68F DUP5 PUSH3 0x54D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x69F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x6B7 PUSH3 0x6AE DUP6 PUSH3 0x54D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x648 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 PUSH3 0x6DF PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x6BF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6FA DUP4 DUP4 PUSH3 0x6CC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x715 DUP3 PUSH3 0x4C9 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x731 JUMPI PUSH3 0x730 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x73D DUP3 SLOAD PUSH3 0x503 JUMP JUMPDEST PUSH3 0x74A DUP3 DUP3 DUP6 PUSH3 0x66F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x782 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x76D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x779 DUP6 DUP3 PUSH3 0x6EC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x7E9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x792 DUP7 PUSH3 0x538 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x7BC 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 PUSH3 0x795 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x7DC JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x7D8 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x6CC 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 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x83A PUSH1 0x1F DUP4 PUSH3 0x7F1 JUMP JUMPDEST SWAP2 POP PUSH3 0x847 DUP3 PUSH3 0x802 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 PUSH3 0x86D DUP2 PUSH3 0x82B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x8B0 DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP2 POP PUSH3 0x8BD DUP4 PUSH3 0x221 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x8D8 JUMPI PUSH3 0x8D7 PUSH3 0x874 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x8E9 DUP2 PUSH3 0x221 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x906 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x8DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1474 DUP1 PUSH3 0x91C 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 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x26D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x173 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10F PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15D PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x421 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F7 PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x538 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x294 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0xF66 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 0x2D8 SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x325 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x325 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 0x308 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x33A PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x347 DUP2 DUP6 DUP6 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x367 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x374 DUP6 DUP3 DUP6 PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x37F DUP6 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3AD PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CE DUP2 DUP6 DUP6 PUSH2 0x3BF DUP6 DUP10 PUSH2 0x55B JUMP JUMPDEST PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42B DUP2 DUP4 PUSH2 0xAB5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0xF66 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 0x46A SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4DA DUP3 DUP7 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x51F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x516 SWAP1 PUSH2 0x106C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x52C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x543 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x550 DUP2 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x650 SWAP1 PUSH2 0x10FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP1 PUSH2 0x1190 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP5 DUP5 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x839 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x822 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A5 SWAP1 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x914 SWAP1 PUSH2 0x1320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x928 DUP4 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x9AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A5 SWAP1 PUSH2 0x13B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA9C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAF DUP5 DUP5 DUP5 PUSH2 0xC10 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB1B SWAP1 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB30 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB42 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xC07 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC10 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC4F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xC34 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 0xC77 DUP3 PUSH2 0xC15 JUMP JUMPDEST PUSH2 0xC81 DUP2 DUP6 PUSH2 0xC20 JUMP JUMPDEST SWAP4 POP PUSH2 0xC91 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xC5B 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 0xCBF DUP2 DUP5 PUSH2 0xC6C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCF7 DUP3 PUSH2 0xCCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD07 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP2 EQ PUSH2 0xD12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD24 DUP2 PUSH2 0xCFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP2 EQ PUSH2 0xD48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD5A DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD77 JUMPI PUSH2 0xD76 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD85 DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD96 DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB5 DUP2 PUSH2 0xDA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDD0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDF DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE19 JUMPI PUSH2 0xE18 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xE38 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xE49 DUP7 DUP3 DUP8 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE69 DUP2 PUSH2 0xE53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEAE DUP5 DUP3 DUP6 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECD PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEDC DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEED DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF1C DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF2D DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xF7E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF91 JUMPI PUSH2 0xF90 PUSH2 0xF37 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP3 PUSH2 0xD2A JUMP JUMPDEST SWAP2 POP PUSH2 0xFDC DUP4 PUSH2 0xD2A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH2 0xFF3 PUSH2 0xF97 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1061 DUP3 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 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 0x1085 DUP2 PUSH2 0x1049 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E8 PUSH1 0x24 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x10F3 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x40 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 0x1117 DUP2 PUSH2 0x10DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117A PUSH1 0x22 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1185 DUP3 PUSH2 0x111E JUMP JUMPDEST PUSH1 0x40 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 0x11A9 DUP2 PUSH2 0x116D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E6 PUSH1 0x1D DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F1 DUP3 PUSH2 0x11B0 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 0x1215 DUP2 PUSH2 0x11D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1278 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1283 DUP3 PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 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 0x12A7 DUP2 PUSH2 0x126B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x130A PUSH1 0x23 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1315 DUP3 PUSH2 0x12AE JUMP JUMPDEST PUSH1 0x40 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 0x1339 DUP2 PUSH2 0x12FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139C PUSH1 0x26 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x13A7 DUP3 PUSH2 0x1340 JUMP JUMPDEST PUSH1 0x40 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 0x13CB DUP2 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH1 0x1F DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1413 DUP3 PUSH2 0x13D2 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 0x1437 DUP2 PUSH2 0x13FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0xBB STOP DUP7 PUSH27 0xCAFC81995B24F4C182EB7B3197D323B92E8B72D53757030B0A4201 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "118:483:19:-:0;;;182:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;316:5;323:7;2050:5:1;2042;:13;;;;;;:::i;:::-;;2075:7;2065;:17;;;;;;:::i;:::-;;1976:113;;342:26:19::1;348:10;360:7;342:5;;;:26;;:::i;:::-;390:9;378;;:21;;;;;;;;;;;;;;;;;;182:224:::0;;;;118:483;;8567:535:1;8669:1;8650:21;;:7;:21;;;8642:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:49;8747:1;8751:7;8760:6;8718:20;;;:49;;:::i;:::-;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;;;;;8968:6;8946:9;:18;8956:7;8946:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9020:7;8999:37;;9016:1;8999:37;;;9029:6;8999:37;;;;;;:::i;:::-;;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;;;:48;;:::i;:::-;8567:535;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:75:22:-;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:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:86::-;729:7;769:4;762:5;758:16;747:27;;694:86;;;:::o;786:118::-;857:22;873:5;857:22;:::i;:::-;850:5;847:33;837:61;;894:1;891;884:12;837:61;786:118;:::o;910:139::-;965:5;996:6;990:13;981:22;;1012:31;1037:5;1012:31;:::i;:::-;910:139;;;;:::o;1055:117::-;1164:1;1161;1154:12;1178:117;1287:1;1284;1277:12;1301:102;1342:6;1393:2;1389:7;1384:2;1377:5;1373:14;1369:28;1359:38;;1301:102;;;:::o;1409:180::-;1457:77;1454:1;1447:88;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1595:281;1678:27;1700:4;1678:27;:::i;:::-;1670:6;1666:40;1808:6;1796:10;1793:22;1772:18;1760:10;1757:34;1754:62;1751:88;;;1819:18;;:::i;:::-;1751:88;1859:10;1855:2;1848:22;1638:238;1595:281;;:::o;1882:129::-;1916:6;1943:20;;:::i;:::-;1933:30;;1972:33;2000:4;1992:6;1972:33;:::i;:::-;1882:129;;;:::o;2017:308::-;2079:4;2169:18;2161:6;2158:30;2155:56;;;2191:18;;:::i;:::-;2155:56;2229:29;2251:6;2229:29;:::i;:::-;2221:37;;2313:4;2307;2303:15;2295:23;;2017:308;;;:::o;2331:246::-;2412:1;2422:113;2436:6;2433:1;2430:13;2422:113;;;2521:1;2516:3;2512:11;2506:18;2502:1;2497:3;2493:11;2486:39;2458:2;2455:1;2451:10;2446:15;;2422:113;;;2569:1;2560:6;2555:3;2551:16;2544:27;2393:184;2331:246;;;:::o;2583:434::-;2672:5;2697:66;2713:49;2755:6;2713:49;:::i;:::-;2697:66;:::i;:::-;2688:75;;2786:6;2779:5;2772:21;2824:4;2817:5;2813:16;2862:3;2853:6;2848:3;2844:16;2841:25;2838:112;;;2869:79;;:::i;:::-;2838:112;2959:52;3004:6;2999:3;2994;2959:52;:::i;:::-;2678:339;2583:434;;;;;:::o;3037:355::-;3104:5;3153:3;3146:4;3138:6;3134:17;3130:27;3120:122;;3161:79;;:::i;:::-;3120:122;3271:6;3265:13;3296:90;3382:3;3374:6;3367:4;3359:6;3355:17;3296:90;:::i;:::-;3287:99;;3110:282;3037:355;;;;:::o;3398:1162::-;3513:6;3521;3529;3537;3586:3;3574:9;3565:7;3561:23;3557:33;3554:120;;;3593:79;;:::i;:::-;3554:120;3713:1;3738:64;3794:7;3785:6;3774:9;3770:22;3738:64;:::i;:::-;3728:74;;3684:128;3851:2;3877:62;3931:7;3922:6;3911:9;3907:22;3877:62;:::i;:::-;3867:72;;3822:127;4009:2;3998:9;3994:18;3988:25;4040:18;4032:6;4029:30;4026:117;;;4062:79;;:::i;:::-;4026:117;4167:74;4233:7;4224:6;4213:9;4209:22;4167:74;:::i;:::-;4157:84;;3959:292;4311:2;4300:9;4296:18;4290:25;4342:18;4334:6;4331:30;4328:117;;;4364:79;;:::i;:::-;4328:117;4469:74;4535:7;4526:6;4515:9;4511:22;4469:74;:::i;:::-;4459:84;;4261:292;3398:1162;;;;;;;:::o;4566:99::-;4618:6;4652:5;4646:12;4636:22;;4566:99;;;:::o;4671:180::-;4719:77;4716:1;4709:88;4816:4;4813:1;4806:15;4840:4;4837:1;4830:15;4857:320;4901:6;4938:1;4932:4;4928:12;4918:22;;4985:1;4979:4;4975:12;5006:18;4996:81;;5062:4;5054:6;5050:17;5040:27;;4996:81;5124:2;5116:6;5113:14;5093:18;5090:38;5087:84;;5143:18;;:::i;:::-;5087:84;4908:269;4857:320;;;:::o;5183:141::-;5232:4;5255:3;5247:11;;5278:3;5275:1;5268:14;5312:4;5309:1;5299:18;5291:26;;5183:141;;;:::o;5330:93::-;5367:6;5414:2;5409;5402:5;5398:14;5394:23;5384:33;;5330:93;;;:::o;5429:107::-;5473:8;5523:5;5517:4;5513:16;5492:37;;5429:107;;;;:::o;5542:393::-;5611:6;5661:1;5649:10;5645:18;5684:97;5714:66;5703:9;5684:97;:::i;:::-;5802:39;5832:8;5821:9;5802:39;:::i;:::-;5790:51;;5874:4;5870:9;5863:5;5859:21;5850:30;;5923:4;5913:8;5909:19;5902:5;5899:30;5889:40;;5618:317;;5542:393;;;;;:::o;5941:60::-;5969:3;5990:5;5983:12;;5941:60;;;:::o;6007:142::-;6057:9;6090:53;6108:34;6117:24;6135:5;6117:24;:::i;:::-;6108:34;:::i;:::-;6090:53;:::i;:::-;6077:66;;6007:142;;;:::o;6155:75::-;6198:3;6219:5;6212:12;;6155:75;;;:::o;6236:269::-;6346:39;6377:7;6346:39;:::i;:::-;6407:91;6456:41;6480:16;6456:41;:::i;:::-;6448:6;6441:4;6435:11;6407:91;:::i;:::-;6401:4;6394:105;6312:193;6236:269;;;:::o;6511:73::-;6556:3;6511:73;:::o;6590:189::-;6667:32;;:::i;:::-;6708:65;6766:6;6758;6752:4;6708:65;:::i;:::-;6643:136;6590:189;;:::o;6785:186::-;6845:120;6862:3;6855:5;6852:14;6845:120;;;6916:39;6953:1;6946:5;6916:39;:::i;:::-;6889:1;6882:5;6878:13;6869:22;;6845:120;;;6785:186;;:::o;6977:543::-;7078:2;7073:3;7070:11;7067:446;;;7112:38;7144:5;7112:38;:::i;:::-;7196:29;7214:10;7196:29;:::i;:::-;7186:8;7182:44;7379:2;7367:10;7364:18;7361:49;;;7400:8;7385:23;;7361:49;7423:80;7479:22;7497:3;7479:22;:::i;:::-;7469:8;7465:37;7452:11;7423:80;:::i;:::-;7082:431;;7067:446;6977:543;;;:::o;7526:117::-;7580:8;7630:5;7624:4;7620:16;7599:37;;7526:117;;;;:::o;7649:169::-;7693:6;7726:51;7774:1;7770:6;7762:5;7759:1;7755:13;7726:51;:::i;:::-;7722:56;7807:4;7801;7797:15;7787:25;;7700:118;7649:169;;;;:::o;7823:295::-;7899:4;8045:29;8070:3;8064:4;8045:29;:::i;:::-;8037:37;;8107:3;8104:1;8100:11;8094:4;8091:21;8083:29;;7823:295;;;;:::o;8123:1395::-;8240:37;8273:3;8240:37;:::i;:::-;8342:18;8334:6;8331:30;8328:56;;;8364:18;;:::i;:::-;8328:56;8408:38;8440:4;8434:11;8408:38;:::i;:::-;8493:67;8553:6;8545;8539:4;8493:67;:::i;:::-;8587:1;8611:4;8598:17;;8643:2;8635:6;8632:14;8660:1;8655:618;;;;9317:1;9334:6;9331:77;;;9383:9;9378:3;9374:19;9368:26;9359:35;;9331:77;9434:67;9494:6;9487:5;9434:67;:::i;:::-;9428:4;9421:81;9290:222;8625:887;;8655:618;8707:4;8703:9;8695:6;8691:22;8741:37;8773:4;8741:37;:::i;:::-;8800:1;8814:208;8828:7;8825:1;8822:14;8814:208;;;8907:9;8902:3;8898:19;8892:26;8884:6;8877:42;8958:1;8950:6;8946:14;8936:24;;9005:2;8994:9;8990:18;8977:31;;8851:4;8848:1;8844:12;8839:17;;8814:208;;;9050:6;9041:7;9038:19;9035:179;;;9108:9;9103:3;9099:19;9093:26;9151:48;9193:4;9185:6;9181:17;9170:9;9151:48;:::i;:::-;9143:6;9136:64;9058:156;9035:179;9260:1;9256;9248:6;9244:14;9240:22;9234:4;9227:36;8662:611;;;8625:887;;8215:1303;;;8123:1395;;:::o;9524:169::-;9608:11;9642:6;9637:3;9630:19;9682:4;9677:3;9673:14;9658:29;;9524:169;;;;:::o;9699:181::-;9839:33;9835:1;9827:6;9823:14;9816:57;9699:181;:::o;9886:366::-;10028:3;10049:67;10113:2;10108:3;10049:67;:::i;:::-;10042:74;;10125:93;10214:3;10125:93;:::i;:::-;10243:2;10238:3;10234:12;10227:19;;9886:366;;;:::o;10258:419::-;10424:4;10462:2;10451:9;10447:18;10439:26;;10511:9;10505:4;10501:20;10497:1;10486:9;10482:17;10475:47;10539:131;10665:4;10539:131;:::i;:::-;10531:139;;10258:419;;;:::o;10683:180::-;10731:77;10728:1;10721:88;10828:4;10825:1;10818:15;10852:4;10849:1;10842:15;10869:191;10909:3;10928:20;10946:1;10928:20;:::i;:::-;10923:25;;10962:20;10980:1;10962:20;:::i;:::-;10957:25;;11005:1;11002;10998:9;10991:16;;11026:3;11023:1;11020:10;11017:36;;;11033:18;;:::i;:::-;11017:36;10869:191;;;;:::o;11066:118::-;11153:24;11171:5;11153:24;:::i;:::-;11148:3;11141:37;11066:118;;:::o;11190:222::-;11283:4;11321:2;11310:9;11306:18;11298:26;;11334:71;11402:1;11391:9;11387:17;11378:6;11334:71;:::i;:::-;11190:222;;;;:::o;118:483:19:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_698": { + "entryPoint": 3088, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_633": { + "entryPoint": 1514, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 3083, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_516": { + "entryPoint": 2741, + "id": 516, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 1506, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_676": { + "entryPoint": 1971, + "id": 676, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_459": { + "entryPoint": 2111, + "id": 459, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_254": { + "entryPoint": 1371, + "id": 254, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_279": { + "entryPoint": 815, + "id": 279, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_211": { + "entryPoint": 985, + "id": 211, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_4130": { + "entryPoint": 907, + "id": 4130, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_382": { + "entryPoint": 1217, + "id": 382, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_341": { + "entryPoint": 930, + "id": 341, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_4121": { + "entryPoint": 1057, + "id": 4121, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_167": { + "entryPoint": 669, + "id": 167, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_177": { + "entryPoint": 1071, + "id": 177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_197": { + "entryPoint": 850, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_312": { + "entryPoint": 860, + "id": 312, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_236": { + "entryPoint": 1336, + "id": 236, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3349, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3403, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3722, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3831, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3584, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3424, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": 3767, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3500, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3180, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4861, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4461, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4569, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5007, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4715, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4315, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4169, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5115, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3542, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3680, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3515, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3237, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4496, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5042, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5150, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3557, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3093, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3104, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4038, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3308, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3488, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3276, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3121, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3991, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3895, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3271, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4782, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 4382, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 4528, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4928, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4636, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 4236, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 5074, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3326, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3380, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:15163:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:22", + "type": "" + } + ], + "src": "7:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:22", + "type": "" + } + ], + "src": "112:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:22", + "statements": [] + }, + "src": "378:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:22", + "type": "" + } + ], + "src": "287:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:22", + "type": "" + } + ], + "src": "539:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:22", + "type": "" + } + ], + "src": "647:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:22", + "type": "" + } + ], + "src": "1030:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:22", + "type": "" + } + ], + "src": "1349:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:22", + "type": "" + } + ], + "src": "1676:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:22", + "type": "" + } + ], + "src": "1808:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:22" + }, + "nodeType": "YulIf", + "src": "1963:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:22", + "type": "" + } + ], + "src": "1910:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:22", + "type": "" + } + ], + "src": "2038:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:22", + "type": "" + } + ], + "src": "2183:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:22" + }, + "nodeType": "YulIf", + "src": "2319:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:22", + "type": "" + } + ], + "src": "2266:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:22", + "type": "" + } + ], + "src": "2394:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:22" + }, + "nodeType": "YulIf", + "src": "2632:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:22", + "type": "" + } + ], + "src": "2539:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:22", + "type": "" + } + ], + "src": "3019:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:22", + "type": "" + } + ], + "src": "3115:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:22", + "type": "" + } + ], + "src": "3230:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:22", + "type": "" + } + ], + "src": "3446:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:22", + "type": "" + } + ], + "src": "3570:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:22" + }, + "nodeType": "YulIf", + "src": "3908:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:22", + "type": "" + } + ], + "src": "3798:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:22", + "type": "" + } + ], + "src": "4423:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:22" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:22", + "type": "" + } + ], + "src": "4515:112:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:22" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:22", + "type": "" + } + ], + "src": "4633:214:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:22" + }, + "nodeType": "YulIf", + "src": "4929:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:22", + "type": "" + } + ], + "src": "4853:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:22" + }, + "nodeType": "YulIf", + "src": "5281:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5464:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:22", + "type": "" + } + ], + "src": "5188:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5751:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5797:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5799:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5799:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5799:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5772:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5781:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5768:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5768:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5793:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5764:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5764:32:22" + }, + "nodeType": "YulIf", + "src": "5761:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5890:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5905:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5919:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5909:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5934:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5969:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5980:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5965:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5989:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5944:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5944:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5934:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6017:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6032:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6046:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6036:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6062:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6097:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6108:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6093:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6093:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6117:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6072:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6072:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6062:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5713:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5724:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5736:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5744:6:22", + "type": "" + } + ], + "src": "5668:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6176:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6193:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6196:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6186:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6186:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6186:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6290:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6293:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6283:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6283:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6283:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6314:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6307:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6307:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6148:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6385:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6395:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6409:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6415:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6405:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6405:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6395:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6426:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6456:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6452:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6452:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6430:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6503:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6517:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6531:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6539:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6527:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6527:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6517:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6483:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6476:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:26:22" + }, + "nodeType": "YulIf", + "src": "6473:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6606:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6620:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6620:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6620:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6570:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6593:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6601:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6590:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6590:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6567:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6567:38:22" + }, + "nodeType": "YulIf", + "src": "6564:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6369:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6378:6:22", + "type": "" + } + ], + "src": "6334:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6688:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6705:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6708:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6698:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6698:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6698:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6802:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6805:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6795:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6795:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6795:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6829:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6819:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6819:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6819:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6660:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6890:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6900:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6923:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6905:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6905:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6900:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6934:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6957:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6939:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6939:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6934:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6968:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6979:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6982:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6975:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6968:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7010:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7010:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7010:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7000:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7003:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6997:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6997:10:22" + }, + "nodeType": "YulIf", + "src": "6994:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "6877:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "6880:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "6886:3:22", + "type": "" + } + ], + "src": "6846:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7149:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7171:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7179:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7167:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7167:14:22" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7183:34:22", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7160:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7160:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7160:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7239:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7247:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7235:15:22" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7252:7:22", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7228:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7228:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7228:32:22" + } + ] + }, + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7141:6:22", + "type": "" + } + ], + "src": "7043:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7419:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7429:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7495:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7500:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7436:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "7436:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7429:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7601:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulIdentifier", + "src": "7512:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "7512:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7512:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "7614:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7625:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7630:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7621:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7621:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7614:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7407:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7415:3:22", + "type": "" + } + ], + "src": "7273:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7816:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7826:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7838:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7849:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7834:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7834:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7873:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7884:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7869:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7869:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7892:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7898:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7888:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7888:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7862:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7862:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7862:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "7918:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8052:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7926:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "7926:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7918:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7796:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7811:4:22", + "type": "" + } + ], + "src": "7645:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8176:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8198:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8206:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8194:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8194:14:22" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8210:34:22", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8187:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8187:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8266:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8274:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8262:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8262:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8279:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8255:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8255:31:22" + } + ] + }, + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8168:6:22", + "type": "" + } + ], + "src": "8070:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8445:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8455:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8521:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8526:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8462:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "8462:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8455:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8627:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulIdentifier", + "src": "8538:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "8538:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8538:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "8640:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8651:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8656:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8647:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8647:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8640:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8433:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8441:3:22", + "type": "" + } + ], + "src": "8299:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8842:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8852:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8864:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8875:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8860:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8860:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8852:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8899:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8910:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8895:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8895:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8918:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8924:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8914:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8914:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8888:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8888:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8888:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "8944:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9078:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8952:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "8952:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8944:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8822:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8837:4:22", + "type": "" + } + ], + "src": "8671:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9202:115:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9224:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9232:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9220:14:22" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9236:34:22", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9213:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9213:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9213:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9292:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9300:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9288:15:22" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9305:4:22", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9281:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9281:29:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9281:29:22" + } + ] + }, + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9194:6:22", + "type": "" + } + ], + "src": "9096:221:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9469:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9479:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9545:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9550:2:22", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9486:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9486:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9479:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9651:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulIdentifier", + "src": "9562:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "9562:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9562:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "9664:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9675:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9680:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9671:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9671:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9664:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9457:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9465:3:22", + "type": "" + } + ], + "src": "9323:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9866:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9876:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9888:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9884:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9884:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9876:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9923:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9934:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9919:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9919:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9942:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9948:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9938:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9938:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9912:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9912:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9912:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "9968:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10102:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9976:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "9976:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9968:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9846:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9861:4:22", + "type": "" + } + ], + "src": "9695:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10226:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10248:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10256:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10244:14:22" + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10260:31:22", + "type": "", + "value": "ERC20: insufficient allowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10237:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10237:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10237:55:22" + } + ] + }, + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10218:6:22", + "type": "" + } + ], + "src": "10120:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10451:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10461:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10527:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10532:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10468:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "10468:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10461:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10633:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulIdentifier", + "src": "10544:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10544:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10544:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10646:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10657:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10662:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10653:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10653:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10646:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10439:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10447:3:22", + "type": "" + } + ], + "src": "10305:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10848:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10858:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10870:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10881:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10866:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10866:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10858:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10905:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10916:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10901:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10901:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10924:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10930:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10920:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10920:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10894:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10894:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10894:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10950:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11084:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10958:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10958:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10950:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10828:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10843:4:22", + "type": "" + } + ], + "src": "10677:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11208:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11230:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11238:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11226:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11226:14:22" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11242:34:22", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11219:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11219:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11219:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11298:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11306:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11294:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11294:15:22" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11311:7:22", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11287:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11287:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11287:32:22" + } + ] + }, + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11200:6:22", + "type": "" + } + ], + "src": "11102:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11478:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11488:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11554:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11559:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11495:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11495:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11488:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11660:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulIdentifier", + "src": "11571:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11571:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11571:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11673:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11684:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11689:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11680:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11680:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11673:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11466:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11474:3:22", + "type": "" + } + ], + "src": "11332:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11875:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11885:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11897:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11908:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11893:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11893:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11885:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11932:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11943:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11928:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11928:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11951:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11957:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11947:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11947:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11921:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11921:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11921:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11977:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12111:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11985:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11985:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11977:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11855:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11870:4:22", + "type": "" + } + ], + "src": "11704:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12235:116:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12257:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12265:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12253:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12253:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12269:34:22", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12246:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12246:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12246:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12325:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12333:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12321:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12321:15:22" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12338:5:22", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12314:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12314:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12314:30:22" + } + ] + }, + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12227:6:22", + "type": "" + } + ], + "src": "12129:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12503:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12513:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12579:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12584:2:22", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12520:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12520:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12513:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12685:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulIdentifier", + "src": "12596:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12596:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12596:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12698:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12709:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12714:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12705:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12698:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12491:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12499:3:22", + "type": "" + } + ], + "src": "12357:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12900:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12910:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12922:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12933:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12918:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12910:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12968:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12953:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12976:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12972:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12946:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12946:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12946:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13002:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13136:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13010:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13010:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13002:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12880:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12895:4:22", + "type": "" + } + ], + "src": "12729:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13260:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13282:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13290:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13278:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13278:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13294:34:22", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13271:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13271:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13271:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13350:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13358:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13346:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13346:15:22" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13363:8:22", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13339:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13339:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13339:33:22" + } + ] + }, + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13252:6:22", + "type": "" + } + ], + "src": "13154:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13531:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13541:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13607:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13612:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13548:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13548:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13541:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13713:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulIdentifier", + "src": "13624:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13624:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13624:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13726:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13737:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13742:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13733:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13733:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13726:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13519:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13527:3:22", + "type": "" + } + ], + "src": "13385:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13928:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13938:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13950:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13946:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13946:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13938:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13985:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13996:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13981:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13981:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14004:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14010:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14000:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13974:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13974:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13974:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "14030:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14164:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14038:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "14038:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14030:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13908:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13923:4:22", + "type": "" + } + ], + "src": "13757:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14288:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14310:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14318:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14306:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14306:14:22" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14322:33:22", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14299:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14299:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14299:57:22" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14280:6:22", + "type": "" + } + ], + "src": "14182:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14515:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14525:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14591:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14596:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14532:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "14532:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14525:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14697:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulIdentifier", + "src": "14608:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "14608:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14608:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "14710:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14721:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14726:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14717:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14717:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14710:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14503:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14511:3:22", + "type": "" + } + ], + "src": "14369:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14912:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14922:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14934:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14945:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14930:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14930:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14922:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14965:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14988:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14994:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14984:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14984:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14958:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14958:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14958:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15014:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15148:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15022:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15022:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15014:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14892:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14907:4:22", + "type": "" + } + ], + "src": "14741:419:22" + } + ] + }, + "contents": "{\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 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 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 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 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_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 abi_decode_tuple_t_addresst_addresst_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_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 function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_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_uint256(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_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 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 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 store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__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_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__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_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__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_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__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_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__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_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__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_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__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_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806394bf804d146101d357806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ca5565b60405180910390f35b6100f160048036038101906100ec9190610d60565b61032f565b6040516100fe9190610dbb565b60405180910390f35b61010f610352565b60405161011c9190610de5565b60405180910390f35b61013f600480360381019061013a9190610e00565b61035c565b60405161014c9190610dbb565b60405180910390f35b61015d61038b565b60405161016a9190610e6f565b60405180910390f35b61018d60048036038101906101889190610d60565b6103a2565b60405161019a9190610dbb565b60405180910390f35b6101bd60048036038101906101b89190610e8a565b6103d9565b6040516101ca9190610de5565b60405180910390f35b6101ed60048036038101906101e89190610eb7565b610421565b005b6101f761042f565b6040516102049190610ca5565b60405180910390f35b61022760048036038101906102229190610d60565b6104c1565b6040516102349190610dbb565b60405180910390f35b61025760048036038101906102529190610d60565b610538565b6040516102649190610dbb565b60405180910390f35b61028760048036038101906102829190610ef7565b61055b565b6040516102949190610de5565b60405180910390f35b6060600380546102ac90610f66565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890610f66565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105e2565b90506103478185856105ea565b600191505092915050565b6000600254905090565b6000806103676105e2565b90506103748582856107b3565b61037f85858561083f565b60019150509392505050565b6000600560009054906101000a900460ff16905090565b6000806103ad6105e2565b90506103ce8185856103bf858961055b565b6103c99190610fc6565b6105ea565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61042b8183610ab5565b5050565b60606004805461043e90610f66565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90610f66565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105e2565b905060006104da828661055b565b90508381101561051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105169061106c565b60405180910390fd5b61052c82868684036105ea565b60019250505092915050565b6000806105436105e2565b905061055081858561083f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906110fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90611190565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107a69190610de5565b60405180910390a3505050565b60006107bf848461055b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610839578181101561082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906111fc565b60405180910390fd5b61083884848484036105ea565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a59061128e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611320565b60405180910390fd5b610928838383610c0b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906113b2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190610de5565b60405180910390a3610aaf848484610c10565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061141e565b60405180910390fd5b610b3060008383610c0b565b8060026000828254610b429190610fc6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf39190610de5565b60405180910390a3610c0760008383610c10565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c4f578082015181840152602081019050610c34565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c7782610c15565b610c818185610c20565b9350610c91818560208601610c31565b610c9a81610c5b565b840191505092915050565b60006020820190508181036000830152610cbf8184610c6c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cf782610ccc565b9050919050565b610d0781610cec565b8114610d1257600080fd5b50565b600081359050610d2481610cfe565b92915050565b6000819050919050565b610d3d81610d2a565b8114610d4857600080fd5b50565b600081359050610d5a81610d34565b92915050565b60008060408385031215610d7757610d76610cc7565b5b6000610d8585828601610d15565b9250506020610d9685828601610d4b565b9150509250929050565b60008115159050919050565b610db581610da0565b82525050565b6000602082019050610dd06000830184610dac565b92915050565b610ddf81610d2a565b82525050565b6000602082019050610dfa6000830184610dd6565b92915050565b600080600060608486031215610e1957610e18610cc7565b5b6000610e2786828701610d15565b9350506020610e3886828701610d15565b9250506040610e4986828701610d4b565b9150509250925092565b600060ff82169050919050565b610e6981610e53565b82525050565b6000602082019050610e846000830184610e60565b92915050565b600060208284031215610ea057610e9f610cc7565b5b6000610eae84828501610d15565b91505092915050565b60008060408385031215610ece57610ecd610cc7565b5b6000610edc85828601610d4b565b9250506020610eed85828601610d15565b9150509250929050565b60008060408385031215610f0e57610f0d610cc7565b5b6000610f1c85828601610d15565b9250506020610f2d85828601610d15565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f7e57607f821691505b602082108103610f9157610f90610f37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fd182610d2a565b9150610fdc83610d2a565b9250828201905080821115610ff457610ff3610f97565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611056602583610c20565b915061106182610ffa565b604082019050919050565b6000602082019050818103600083015261108581611049565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110e8602483610c20565b91506110f38261108c565b604082019050919050565b60006020820190508181036000830152611117816110db565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061117a602283610c20565b91506111858261111e565b604082019050919050565b600060208201905081810360008301526111a98161116d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006111e6601d83610c20565b91506111f1826111b0565b602082019050919050565b60006020820190508181036000830152611215816111d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611278602583610c20565b91506112838261121c565b604082019050919050565b600060208201905081810360008301526112a78161126b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061130a602383610c20565b9150611315826112ae565b604082019050919050565b60006020820190508181036000830152611339816112fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061139c602683610c20565b91506113a782611340565b604082019050919050565b600060208201905081810360008301526113cb8161138f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611408601f83610c20565b9150611413826113d2565b602082019050919050565b60006020820190508181036000830152611437816113fb565b905091905056fea264697066735822122056bb00867acafc81995b24f4c182eb7b3197d323b92e8b72d53757030b0a420164736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x26D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x173 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10F PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15D PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x421 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F7 PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x538 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x294 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0xF66 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 0x2D8 SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x325 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x325 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 0x308 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x33A PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x347 DUP2 DUP6 DUP6 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x367 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x374 DUP6 DUP3 DUP6 PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x37F DUP6 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3AD PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CE DUP2 DUP6 DUP6 PUSH2 0x3BF DUP6 DUP10 PUSH2 0x55B JUMP JUMPDEST PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42B DUP2 DUP4 PUSH2 0xAB5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0xF66 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 0x46A SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4DA DUP3 DUP7 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x51F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x516 SWAP1 PUSH2 0x106C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x52C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x543 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x550 DUP2 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x650 SWAP1 PUSH2 0x10FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP1 PUSH2 0x1190 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP5 DUP5 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x839 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x822 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A5 SWAP1 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x914 SWAP1 PUSH2 0x1320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x928 DUP4 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x9AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A5 SWAP1 PUSH2 0x13B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA9C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAF DUP5 DUP5 DUP5 PUSH2 0xC10 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB1B SWAP1 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB30 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB42 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xC07 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC10 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC4F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xC34 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 0xC77 DUP3 PUSH2 0xC15 JUMP JUMPDEST PUSH2 0xC81 DUP2 DUP6 PUSH2 0xC20 JUMP JUMPDEST SWAP4 POP PUSH2 0xC91 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xC5B 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 0xCBF DUP2 DUP5 PUSH2 0xC6C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCF7 DUP3 PUSH2 0xCCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD07 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP2 EQ PUSH2 0xD12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD24 DUP2 PUSH2 0xCFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP2 EQ PUSH2 0xD48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD5A DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD77 JUMPI PUSH2 0xD76 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD85 DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD96 DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB5 DUP2 PUSH2 0xDA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDD0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDF DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE19 JUMPI PUSH2 0xE18 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xE38 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xE49 DUP7 DUP3 DUP8 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE69 DUP2 PUSH2 0xE53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEAE DUP5 DUP3 DUP6 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECD PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEDC DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEED DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF1C DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF2D DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xF7E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF91 JUMPI PUSH2 0xF90 PUSH2 0xF37 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP3 PUSH2 0xD2A JUMP JUMPDEST SWAP2 POP PUSH2 0xFDC DUP4 PUSH2 0xD2A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH2 0xFF3 PUSH2 0xF97 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1061 DUP3 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 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 0x1085 DUP2 PUSH2 0x1049 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E8 PUSH1 0x24 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x10F3 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x40 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 0x1117 DUP2 PUSH2 0x10DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117A PUSH1 0x22 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1185 DUP3 PUSH2 0x111E JUMP JUMPDEST PUSH1 0x40 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 0x11A9 DUP2 PUSH2 0x116D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E6 PUSH1 0x1D DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F1 DUP3 PUSH2 0x11B0 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 0x1215 DUP2 PUSH2 0x11D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1278 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1283 DUP3 PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 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 0x12A7 DUP2 PUSH2 0x126B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x130A PUSH1 0x23 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1315 DUP3 PUSH2 0x12AE JUMP JUMPDEST PUSH1 0x40 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 0x1339 DUP2 PUSH2 0x12FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139C PUSH1 0x26 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x13A7 DUP3 PUSH2 0x1340 JUMP JUMPDEST PUSH1 0x40 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 0x13CB DUP2 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH1 0x1F DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1413 DUP3 PUSH2 0x13D2 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 0x1437 DUP2 PUSH2 0x13FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0xBB STOP DUP7 PUSH27 0xCAFC81995B24F4C182EB7B3197D323B92E8B72D53757030B0A4201 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "118:483:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3242:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;501:98:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5871:234:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:83:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2365:102:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3974:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2154:98;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;4530:13;4546:12;:10;:12::i;:::-;4530:28;;4568:32;4577:5;4584:7;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;:::o;3242:106::-;3303:7;3329:12;;3322:19;;3242:106;:::o;5190:286::-;5317:4;5333:15;5351:12;:10;:12::i;:::-;5333:30;;5373:38;5389:4;5395:7;5404:6;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;5465:4;5458:11;;;5190:286;;;;;:::o;501:98:19:-;559:5;583:9;;;;;;;;;;;576:16;;501:98;:::o;5871:234:1:-;5959:4;5975:13;5991:12;:10;:12::i;:::-;5975:28;;6013:64;6022:5;6029:7;6066:10;6038:25;6048:5;6055:7;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;:::-;6094:4;6087:11;;;5871:234;;;;:::o;3406:125::-;3480:7;3506:9;:18;3516:7;3506:18;;;;;;;;;;;;;;;;3499:25;;3406:125;;;:::o;412:83:19:-;471:17;477:2;481:6;471:5;:17::i;:::-;412:83;;:::o;2365:102:1:-;2421:13;2453:7;2446:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:102;:::o;6592:427::-;6685:4;6701:13;6717:12;:10;:12::i;:::-;6701:28;;6739:24;6766:25;6776:5;6783:7;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;:::-;7008:4;7001:11;;;;6592:427;;;;:::o;3727:189::-;3806:4;3822:13;3838:12;:10;:12::i;:::-;3822:28;;3860;3870:5;3877:2;3881:6;3860:9;:28::i;:::-;3905:4;3898:11;;;3727:189;;;;:::o;3974:149::-;4063:7;4089:11;:18;4101:5;4089:18;;;;;;;;;;;;;;;:27;4108:7;4089:27;;;;;;;;;;;;;;;;4082:34;;3974:149;;;;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;10504:370:1:-;10652:1;10635:19;;:5;:19;;;10627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:1;10713:21;;:7;:21;;;10705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:6;10784:11;:18;10796:5;10784:18;;;;;;;;;;;;;;;:27;10803:7;10784:27;;;;;;;;;;;;;;;:36;;;;10851:7;10835:32;;10844:5;10835:32;;;10860:6;10835:32;;;;;;:::i;:::-;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;11371:17;11351:16;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11347:243;11275:321;11155:441;;;:::o;7473:818::-;7615:1;7599:18;;:4;:18;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7691:1;7677:16;;:2;:16;;;7669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:38;7765:4;7771:2;7775:6;7744:20;:38::i;:::-;7793:19;7815:9;:15;7825:4;7815:15;;;;;;;;;;;;;;;;7793:37;;7863:6;7848:11;:21;;7840:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7978:6;7964:11;:20;7946:9;:15;7956:4;7946:15;;;;;;;;;;;;;;;:38;;;;8178:6;8161:9;:13;8171:2;8161:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8225:2;8210:26;;8219:4;8210:26;;;8229:6;8210:26;;;;;;:::i;:::-;;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;:::-;7581:710;7473:818;;;:::o;8567:535::-;8669:1;8650:21;;:7;:21;;;8642:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:49;8747:1;8751:7;8760:6;8718:20;:49::i;:::-;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;;;;;8968:6;8946:9;:18;8956:7;8946:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9020:7;8999:37;;9016:1;8999:37;;;9029:6;8999:37;;;;;;:::i;:::-;;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;:::-;8567:535;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:99:22:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:::-;5736:6;5744;5793:2;5781:9;5772:7;5768:23;5764:32;5761:119;;;5799:79;;:::i;:::-;5761:119;5919:1;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5890:117;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5668:474;;;;;:::o;6148:180::-;6196:77;6193:1;6186:88;6293:4;6290:1;6283:15;6317:4;6314:1;6307:15;6334:320;6378:6;6415:1;6409:4;6405:12;6395:22;;6462:1;6456:4;6452:12;6483:18;6473:81;;6539:4;6531:6;6527:17;6517:27;;6473:81;6601:2;6593:6;6590:14;6570:18;6567:38;6564:84;;6620:18;;:::i;:::-;6564:84;6385:269;6334:320;;;:::o;6660:180::-;6708:77;6705:1;6698:88;6805:4;6802:1;6795:15;6829:4;6826:1;6819:15;6846:191;6886:3;6905:20;6923:1;6905:20;:::i;:::-;6900:25;;6939:20;6957:1;6939:20;:::i;:::-;6934:25;;6982:1;6979;6975:9;6968:16;;7003:3;7000:1;6997:10;6994:36;;;7010:18;;:::i;:::-;6994:36;6846:191;;;;:::o;7043:224::-;7183:34;7179:1;7171:6;7167:14;7160:58;7252:7;7247:2;7239:6;7235:15;7228:32;7043:224;:::o;7273:366::-;7415:3;7436:67;7500:2;7495:3;7436:67;:::i;:::-;7429:74;;7512:93;7601:3;7512:93;:::i;:::-;7630:2;7625:3;7621:12;7614:19;;7273:366;;;:::o;7645:419::-;7811:4;7849:2;7838:9;7834:18;7826:26;;7898:9;7892:4;7888:20;7884:1;7873:9;7869:17;7862:47;7926:131;8052:4;7926:131;:::i;:::-;7918:139;;7645:419;;;:::o;8070:223::-;8210:34;8206:1;8198:6;8194:14;8187:58;8279:6;8274:2;8266:6;8262:15;8255:31;8070:223;:::o;8299:366::-;8441:3;8462:67;8526:2;8521:3;8462:67;:::i;:::-;8455:74;;8538:93;8627:3;8538:93;:::i;:::-;8656:2;8651:3;8647:12;8640:19;;8299:366;;;:::o;8671:419::-;8837:4;8875:2;8864:9;8860:18;8852:26;;8924:9;8918:4;8914:20;8910:1;8899:9;8895:17;8888:47;8952:131;9078:4;8952:131;:::i;:::-;8944:139;;8671:419;;;:::o;9096:221::-;9236:34;9232:1;9224:6;9220:14;9213:58;9305:4;9300:2;9292:6;9288:15;9281:29;9096:221;:::o;9323:366::-;9465:3;9486:67;9550:2;9545:3;9486:67;:::i;:::-;9479:74;;9562:93;9651:3;9562:93;:::i;:::-;9680:2;9675:3;9671:12;9664:19;;9323:366;;;:::o;9695:419::-;9861:4;9899:2;9888:9;9884:18;9876:26;;9948:9;9942:4;9938:20;9934:1;9923:9;9919:17;9912:47;9976:131;10102:4;9976:131;:::i;:::-;9968:139;;9695:419;;;:::o;10120:179::-;10260:31;10256:1;10248:6;10244:14;10237:55;10120:179;:::o;10305:366::-;10447:3;10468:67;10532:2;10527:3;10468:67;:::i;:::-;10461:74;;10544:93;10633:3;10544:93;:::i;:::-;10662:2;10657:3;10653:12;10646:19;;10305:366;;;:::o;10677:419::-;10843:4;10881:2;10870:9;10866:18;10858:26;;10930:9;10924:4;10920:20;10916:1;10905:9;10901:17;10894:47;10958:131;11084:4;10958:131;:::i;:::-;10950:139;;10677:419;;;:::o;11102:224::-;11242:34;11238:1;11230:6;11226:14;11219:58;11311:7;11306:2;11298:6;11294:15;11287:32;11102:224;:::o;11332:366::-;11474:3;11495:67;11559:2;11554:3;11495:67;:::i;:::-;11488:74;;11571:93;11660:3;11571:93;:::i;:::-;11689:2;11684:3;11680:12;11673:19;;11332:366;;;:::o;11704:419::-;11870:4;11908:2;11897:9;11893:18;11885:26;;11957:9;11951:4;11947:20;11943:1;11932:9;11928:17;11921:47;11985:131;12111:4;11985:131;:::i;:::-;11977:139;;11704:419;;;:::o;12129:222::-;12269:34;12265:1;12257:6;12253:14;12246:58;12338:5;12333:2;12325:6;12321:15;12314:30;12129:222;:::o;12357:366::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:419::-;12895:4;12933:2;12922:9;12918:18;12910:26;;12982:9;12976:4;12972:20;12968:1;12957:9;12953:17;12946:47;13010:131;13136:4;13010:131;:::i;:::-;13002:139;;12729:419;;;:::o;13154:225::-;13294:34;13290:1;13282:6;13278:14;13271:58;13363:8;13358:2;13350:6;13346:15;13339:33;13154:225;:::o;13385:366::-;13527:3;13548:67;13612:2;13607:3;13548:67;:::i;:::-;13541:74;;13624:93;13713:3;13624:93;:::i;:::-;13742:2;13737:3;13733:12;13726:19;;13385:366;;;:::o;13757:419::-;13923:4;13961:2;13950:9;13946:18;13938:26;;14010:9;14004:4;14000:20;13996:1;13985:9;13981:17;13974:47;14038:131;14164:4;14038:131;:::i;:::-;14030:139;;13757:419;;;:::o;14182:181::-;14322:33;14318:1;14310:6;14306:14;14299:57;14182:181;:::o;14369:366::-;14511:3;14532:67;14596:2;14591:3;14532:67;:::i;:::-;14525:74;;14608:93;14697:3;14608:93;:::i;:::-;14726:2;14721:3;14717:12;14710:19;;14369:366;;;:::o;14741:419::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14994:9;14988:4;14984:20;14980:1;14969:9;14965:17;14958:47;15022:131;15148:4;15022:131;:::i;:::-;15014:139;;14741:419;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "mint(uint256,address)": "94bf804d", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supply_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/mocks/ERC20Mock.sol\":{\"keccak256\":\"0x3958216dec86564705d3cfd1961b1d74262df77cc13f77fe93b41da7bf865409\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1503f798b3338965b60142ee549acdaef8911af223a3f1fbd0fb90968bbe695\",\"dweb:/ipfs/QmV3KeGGMoURmdm2QAHxM5TaoyxzB8svt35TpR9a3j31fi\"]}},\"version\":1}" + } + }, + "contracts/reference/LinearVestingNFT.sol": { + "LinearVestingNFT": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "duration", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4177": { + "entryPoint": null, + "id": 4177, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 380, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 455, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 506, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 251, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 103, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 282, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1071, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 336, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 697, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1164, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 946, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 123, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 128, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 118, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 113, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 133, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 787, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1004, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 800, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 956, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 999, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162004306380380620043068339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613d4580620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4306 CODESIZE SUB DUP1 PUSH3 0x4306 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1FA JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP POP POP POP POP PUSH3 0x5B1 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 PUSH3 0xD0 DUP3 PUSH3 0x85 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xF2 JUMPI PUSH3 0xF1 PUSH3 0x96 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x107 PUSH3 0x67 JUMP JUMPDEST SWAP1 POP PUSH3 0x115 DUP3 DUP3 PUSH3 0xC5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x138 JUMPI PUSH3 0x137 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x143 DUP3 PUSH3 0x85 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x170 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x153 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x193 PUSH3 0x18D DUP5 PUSH3 0x11A JUMP JUMPDEST PUSH3 0xFB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1B2 JUMPI PUSH3 0x1B1 PUSH3 0x80 JUMP JUMPDEST JUMPDEST PUSH3 0x1BF DUP5 DUP3 DUP6 PUSH3 0x150 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DF JUMPI PUSH3 0x1DE PUSH3 0x7B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1F1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x17C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x214 JUMPI PUSH3 0x213 PUSH3 0x71 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x235 JUMPI PUSH3 0x234 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x243 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x267 JUMPI PUSH3 0x266 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x275 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2D2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E8 JUMPI PUSH3 0x2E7 PUSH3 0x28A 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 PUSH3 0x352 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x313 JUMP JUMPDEST PUSH3 0x35E DUP7 DUP4 PUSH3 0x313 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 PUSH3 0x3AB PUSH3 0x3A5 PUSH3 0x39F DUP5 PUSH3 0x376 JUMP JUMPDEST PUSH3 0x380 JUMP JUMPDEST PUSH3 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C7 DUP4 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x3DF PUSH3 0x3D6 DUP3 PUSH3 0x3B2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x320 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F6 PUSH3 0x3E7 JUMP JUMPDEST PUSH3 0x403 DUP2 DUP5 DUP5 PUSH3 0x3BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x42B JUMPI PUSH3 0x41F PUSH1 0x0 DUP3 PUSH3 0x3EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x409 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x47A JUMPI PUSH3 0x444 DUP2 PUSH3 0x2EE JUMP JUMPDEST PUSH3 0x44F DUP5 PUSH3 0x303 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x477 PUSH3 0x46E DUP6 PUSH3 0x303 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x408 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 PUSH3 0x49F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47F JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4BA DUP4 DUP4 PUSH3 0x48C JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D5 DUP3 PUSH3 0x27F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4F1 JUMPI PUSH3 0x4F0 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x4FD DUP3 SLOAD PUSH3 0x2B9 JUMP JUMPDEST PUSH3 0x50A DUP3 DUP3 DUP6 PUSH3 0x42F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x542 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x52D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x539 DUP6 DUP3 PUSH3 0x4AC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x552 DUP7 PUSH3 0x2EE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x57C 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 PUSH3 0x555 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x59C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x598 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x48C 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 PUSH2 0x3D45 DUP1 PUSH3 0x5C1 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 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81D0526D GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xC196F42F EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x467 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C7 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x81D0526D EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3E3 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BE PUSH2 0x61B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x256 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0xA2A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP3 SWAP2 SWAP1 PUSH2 0x2ABA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x2AE3 JUMP JUMPDEST PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x34F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x2B57 JUMP JUMPDEST PUSH2 0xE2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x435 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x430 SWAP2 SWAP1 PUSH2 0x2DB9 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x451 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45E SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x2E46 JUMP JUMPDEST PUSH2 0x124C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48E SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AC SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x1327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DC SWAP2 SWAP1 PUSH2 0x2E86 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0x13CE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x62A SWAP1 PUSH2 0x2EF5 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 0x656 SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x678 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A3 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 0x686 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B8 DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FE DUP3 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x76E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x765 SWAP1 PUSH2 0x2F98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x78D PUSH2 0x14FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x7BC JUMPI POP PUSH2 0x7BB DUP2 PUSH2 0x7B6 PUSH2 0x14FB JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST JUMPDEST PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x302A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x805 DUP4 DUP4 PUSH2 0x1503 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x81B PUSH2 0x815 PUSH2 0x14FB JUMP JUMPDEST DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x851 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x865 DUP4 DUP4 DUP4 PUSH2 0x1651 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x874 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x8B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8AA SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8D3 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x920 SWAP1 PUSH2 0x3194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x934 DUP4 PUSH2 0xDB3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x979 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x970 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9EB SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA25 CALLER DUP3 PUSH2 0xA00 DUP7 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x198B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA57 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xA96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8D SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0xAA8 DUP6 PUSH2 0x1A5F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xABE DUP4 PUSH2 0x1AAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x3361 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBFB DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xC3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC31 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC43 DUP4 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xC4C DUP5 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC6A DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA0 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCD1 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xD10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD07 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP4 PUSH2 0x1B0A JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD30 SWAP1 PUSH2 0x2EF5 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 0xD5C SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA9 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 0xD8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xDBF DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF5 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE1B DUP5 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xE25 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE3F PUSH2 0xE38 PUSH2 0x14FB JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1B4A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE54 PUSH2 0xE4E PUSH2 0x14FB JUMP JUMPDEST DUP4 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8A SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE9F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST TIMESTAMP DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xEFA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF1 SWAP1 PUSH2 0x3401 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF69 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF60 SWAP1 PUSH2 0x346D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0xFD0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFC7 SWAP1 PUSH2 0x34FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP8 PUSH2 0x1028 SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP8 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1197 SWAP1 PUSH2 0x3563 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11A6 DUP8 DUP3 PUSH2 0x1D12 JUMP JUMPDEST PUSH2 0x11DB CALLER ADDRESS DUP9 PUSH2 0x11B5 DUP6 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1F2F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11EF DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F9 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1244 JUMP JUMPDEST DUP1 PUSH2 0x1223 DUP5 PUSH2 0x1FCF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x35E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1258 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x1297 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x128E SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12A0 DUP5 PUSH2 0x209D JUMP JUMPDEST DUP4 LT ISZERO PUSH2 0x12B0 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12B9 DUP5 PUSH2 0x1A5F JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12C9 DUP5 PUSH2 0x1AEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12D9 DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0x12E2 DUP6 PUSH2 0x1A5F JUMP JUMPDEST PUSH2 0x12EC SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x12F5 DUP6 PUSH2 0x1A11 JUMP JUMPDEST DUP5 PUSH2 0x1300 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x1309 DUP7 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0x1313 SWAP2 SWAP1 PUSH2 0x360B JUMP JUMPDEST PUSH2 0x131D SWAP2 SWAP1 PUSH2 0x367C JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1333 DUP3 TIMESTAMP PUSH2 0x124C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1499 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x14A9 JUMPI POP PUSH2 0x14A8 DUP3 PUSH2 0x20EB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14B9 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x14F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14EF SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1576 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C8 DUP4 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x160A JUMPI POP PUSH2 0x1609 DUP2 DUP6 PUSH2 0x133A JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1648 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1630 DUP5 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1671 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16BE SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1736 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x172D SWAP1 PUSH2 0x37B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1743 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1763 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B0 SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1945 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x196C DUP4 PUSH2 0x1AAD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A0C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x19AA SWAP3 SWAP2 SWAP1 PUSH2 0x37D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BAF SWAP1 PUSH2 0x3846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1CA9 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1CC1 DUP5 DUP5 DUP5 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x1CCD DUP5 DUP5 DUP5 DUP5 PUSH2 0x2228 JUMP JUMPDEST PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D78 SWAP1 PUSH2 0x3944 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8A DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC1 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1DD8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST PUSH2 0x1DE1 DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E18 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F2B PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1F50 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FDE DUP5 PUSH2 0x23AF JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x2BA1 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 0x202F 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 0x2092 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x2086 JUMPI PUSH2 0x2085 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x203D JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21C3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2502 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2223 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21E3 SWAP2 SWAP1 PUSH2 0x3A1C JUMP JUMPDEST PUSH2 0x2222 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2219 SWAP1 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2249 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x251A JUMP JUMPDEST ISZERO PUSH2 0x23A2 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x2272 PUSH2 0x14FB JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2294 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B30 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x22D0 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 0x22CD SWAP2 SWAP1 PUSH2 0x3B91 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2352 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2300 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 0x2305 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x234A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2341 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x23A7 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x240D JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x244A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2440 JUMPI PUSH2 0x243F PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2479 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x246F JUMPI PUSH2 0x246E PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x24A2 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x24C7 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x24BD JUMPI PUSH2 0x24BC PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x24EA JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24F9 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2511 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x253D JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2582 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2579 SWAP1 PUSH2 0x3C30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25AB SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25E8 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 0x25ED JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x25FE DUP8 DUP4 DUP4 DUP8 PUSH2 0x260A JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x266C JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x2664 JUMPI PUSH2 0x2624 DUP6 PUSH2 0x251A JUMP JUMPDEST PUSH2 0x2663 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x265A SWAP1 PUSH2 0x3CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x2676 DUP4 DUP4 PUSH2 0x267F JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x2692 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C6 SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2718 DUP2 PUSH2 0x26E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2735 DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2751 JUMPI PUSH2 0x2750 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275F DUP5 DUP3 DUP6 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x277D DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2798 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2774 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP2 EQ PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27CE DUP2 PUSH2 0x27A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27EA JUMPI PUSH2 0x27E9 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27F8 DUP5 DUP3 DUP6 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH2 0x2841 PUSH2 0x283C DUP5 PUSH2 0x2801 JUMP JUMPDEST PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2858 DUP3 PUSH2 0x282B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286A DUP3 PUSH2 0x284D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287A DUP2 PUSH2 0x285F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2889 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B4 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x28CF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x28DC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x28E9 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x28F6 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x2903 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28AB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2947 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x292C 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 0x296F DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x2979 DUP2 DUP6 PUSH2 0x2918 JUMP JUMPDEST SWAP4 POP PUSH2 0x2989 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x2992 DUP2 PUSH2 0x2953 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 0x29B7 DUP2 DUP5 PUSH2 0x2964 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29CA DUP3 PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29DA DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A04 DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP2 EQ PUSH2 0x2A0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A21 DUP2 PUSH2 0x29FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A3E JUMPI PUSH2 0x2A3D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A4C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A5D DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP7 DUP3 DUP8 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x2ADC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AF9 JUMPI PUSH2 0x2AF8 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B07 DUP5 DUP3 DUP6 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2B25 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B34 DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B51 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6E JUMPI PUSH2 0x2B6D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8D DUP6 DUP3 DUP7 ADD PUSH2 0x2B42 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD9 DUP3 PUSH2 0x2953 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF7 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0B PUSH2 0x26CF JUMP JUMPDEST SWAP1 POP PUSH2 0x2C17 DUP3 DUP3 PUSH2 0x2BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C37 JUMPI PUSH2 0x2C36 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST PUSH2 0x2C40 DUP3 PUSH2 0x2953 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 0x2C6F PUSH2 0x2C6A DUP5 PUSH2 0x2C1C JUMP JUMPDEST PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2C8B JUMPI PUSH2 0x2C8A PUSH2 0x2B9C JUMP JUMPDEST JUMPDEST PUSH2 0x2C96 DUP5 DUP3 DUP6 PUSH2 0x2C4D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CB3 JUMPI PUSH2 0x2CB2 PUSH2 0x2B97 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CC3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2CE6 JUMPI PUSH2 0x2CE5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CF4 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2D05 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2D16 DUP8 DUP3 DUP9 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D37 JUMPI PUSH2 0x2D36 PUSH2 0x26DE JUMP JUMPDEST JUMPDEST PUSH2 0x2D43 DUP8 DUP3 DUP9 ADD PUSH2 0x2C9E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2D58 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP2 EQ PUSH2 0x2D63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D75 DUP2 PUSH2 0x2D4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D86 DUP3 PUSH2 0x29BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D96 DUP2 PUSH2 0x2D7B JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2DB3 DUP2 PUSH2 0x2D8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI PUSH2 0x2DD5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2DE4 DUP10 DUP3 DUP11 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2DF5 DUP10 DUP3 DUP11 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2E06 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2E17 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2E28 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2E39 DUP10 DUP3 DUP11 ADD PUSH2 0x2DA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E5D JUMPI PUSH2 0x2E5C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E6B DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E7C DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E9D JUMPI PUSH2 0x2E9C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EAB DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2EBC DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2F0D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2F20 JUMPI PUSH2 0x2F1F PUSH2 0x2EC6 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F82 PUSH1 0x21 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F8D DUP3 PUSH2 0x2F26 JUMP JUMPDEST PUSH1 0x40 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 0x2FB1 DUP2 PUSH2 0x2F75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3014 PUSH1 0x3D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x301F DUP3 PUSH2 0x2FB8 JUMP JUMPDEST PUSH1 0x40 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 0x3043 DUP2 PUSH2 0x3007 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A6 PUSH1 0x2D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x30B1 DUP3 PUSH2 0x304A JUMP JUMPDEST PUSH1 0x40 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 0x30D5 DUP2 PUSH2 0x3099 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3112 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x311D DUP3 PUSH2 0x30DC 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 0x3141 DUP2 PUSH2 0x3105 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317E PUSH1 0x10 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3189 DUP3 PUSH2 0x3148 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 0x31AD DUP2 PUSH2 0x3171 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EA PUSH1 0x1A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x31F5 DUP3 PUSH2 0x31B4 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 0x3219 DUP2 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325A DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3265 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x327D JUMPI PUSH2 0x327C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B9 PUSH1 0x18 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x32C4 DUP3 PUSH2 0x3283 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 0x32E8 DUP2 PUSH2 0x32AC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334B PUSH1 0x29 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3356 DUP3 PUSH2 0x32EF JUMP JUMPDEST PUSH1 0x40 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 0x337A DUP2 PUSH2 0x333E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338C DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3397 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x33AF JUMPI PUSH2 0x33AE PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x737461727454696D652063616E6E6F74206265206F6E20746865207061737400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33EB PUSH1 0x1F DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F6 DUP3 PUSH2 0x33B5 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 0x341A DUP2 PUSH2 0x33DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x16 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3462 DUP3 PUSH2 0x3421 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 0x3486 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6475726174696F6E206E6565647320746F206265206D6F7265207468616E2063 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C69666600000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34E9 PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F4 DUP3 PUSH2 0x348D JUMP JUMPDEST PUSH1 0x40 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 0x3518 DUP2 PUSH2 0x34DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352A DUP3 PUSH2 0x288F JUMP JUMPDEST SWAP2 POP PUSH2 0x3535 DUP4 PUSH2 0x288F JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x355D JUMPI PUSH2 0x355C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356E DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x35A0 JUMPI PUSH2 0x359F PUSH2 0x3220 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C1 DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x35CB DUP2 DUP6 PUSH2 0x35AB JUMP JUMPDEST SWAP4 POP PUSH2 0x35DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35F3 DUP3 DUP6 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP PUSH2 0x35FF DUP3 DUP5 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3616 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3621 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x362F DUP2 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3646 JUMPI PUSH2 0x3645 PUSH2 0x3220 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3687 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3692 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x36A2 JUMPI PUSH2 0x36A1 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3709 PUSH1 0x25 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3714 DUP3 PUSH2 0x36AD JUMP JUMPDEST PUSH1 0x40 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 0x3738 DUP2 PUSH2 0x36FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379B PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x37A6 DUP3 PUSH2 0x373F JUMP JUMPDEST PUSH1 0x40 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 0x37CA DUP2 PUSH2 0x378E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x37E6 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x37F3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3830 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x383B DUP3 PUSH2 0x37FA 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 0x385F DUP2 PUSH2 0x3823 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C2 PUSH1 0x32 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x38CD DUP3 PUSH2 0x3866 JUMP JUMPDEST PUSH1 0x40 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 0x38F1 DUP2 PUSH2 0x38B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x392E PUSH1 0x20 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3939 DUP3 PUSH2 0x38F8 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 0x395D DUP2 PUSH2 0x3921 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x399A PUSH1 0x1C DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x39A5 DUP3 PUSH2 0x3964 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 0x39C9 DUP2 PUSH2 0x398D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x39E5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3A16 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A32 JUMPI PUSH2 0x3A31 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x3A07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA5 PUSH1 0x2A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AB0 DUP3 PUSH2 0x3A49 JUMP JUMPDEST PUSH1 0x40 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 0x3AD4 DUP2 PUSH2 0x3A98 JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x3B02 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3B0C DUP2 DUP6 PUSH2 0x3AE6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x3B25 DUP2 PUSH2 0x2953 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3B45 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3B71 DUP2 DUP5 PUSH2 0x3AF7 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3B8B DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA7 JUMPI PUSH2 0x3BA6 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3BB5 DUP5 DUP3 DUP6 ADD PUSH2 0x3B7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1A PUSH1 0x26 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3C25 DUP3 PUSH2 0x3BBE JUMP JUMPDEST PUSH1 0x40 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 0x3C49 DUP2 PUSH2 0x3C0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C66 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3C70 DUP2 DUP6 PUSH2 0x3C50 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C98 DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CD9 PUSH1 0x1D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3CE4 DUP3 PUSH2 0x3CA3 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 0x3D08 DUP2 PUSH2 0x3CCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x29 0xCC 0xB4 0xD7 SAR MLOAD 0xCB DIV PUSH14 0x97D5B0FCCA978FD585CBF5594A67 0x4A DUP8 DUP5 PUSH10 0x20D1E45264736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:3640:20:-:0;;;747:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;808:4;814:6;1464:5:6;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;747:77:20;;88:3640;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;88:3640:20:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 8539, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 5379, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 8120, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 8533, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_callOptionalReturn_1118": { + "entryPoint": 8545, + "id": 1118, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 8744, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_cliff_4397": { + "entryPoint": 8349, + "id": 4397, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_endTime_4383": { + "entryPoint": 6751, + "id": 4383, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 6474, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 5564, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1720": { + "entryPoint": 7442, + "id": 1720, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 5371, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 6829, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payoutToken_4338": { + "entryPoint": 6922, + "id": 4338, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payout_4353": { + "entryPoint": 6890, + "id": 4353, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 5296, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_revert_2536": { + "entryPoint": 9855, + "id": 2536, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 7350, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 6986, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_startTime_4368": { + "entryPoint": 6673, + "id": 4368, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_transfer_1872": { + "entryPoint": 5713, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1779, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 2872, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claim_3803": { + "entryPoint": 2154, + "id": 3803, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@claimablePayout_3876": { + "entryPoint": 3507, + "id": 3876, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claimedPayout_3894": { + "entryPoint": 3166, + "id": 3894, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@create_4263": { + "entryPoint": 3749, + "id": 4263, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@functionCallWithValue_2361": { + "entryPoint": 9533, + "id": 2361, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_2297": { + "entryPoint": 9474, + "id": 2297, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1709, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 4922, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 9498, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 9135, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 1563, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 2738, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@payoutToken_3936": { + "entryPoint": 3269, + "id": 3936, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 2602, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 3651, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransferFrom_896": { + "entryPoint": 7983, + "id": 896, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_870": { + "entryPoint": 6539, + "id": 870, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 3629, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 5070, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 8427, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3960": { + "entryPoint": 1271, + "id": 3960, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 3361, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 8143, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 4580, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 2058, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_2492": { + "entryPoint": 9738, + "id": 2492, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vestDetails_4161": { + "entryPoint": 1393, + "id": 4161, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@vestedPayoutAtTime_4320": { + "entryPoint": 4684, + "id": 4320, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@vestedPayout_3820": { + "entryPoint": 4903, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPayout_3854": { + "entryPoint": 3055, + "id": 3854, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPeriod_3918": { + "entryPoint": 2634, + "id": 3918, + "parameterSlots": 1, + "returnSlots": 2 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 11356, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 10770, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11074, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 14855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 10022, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 15228, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 11422, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IERC20_$777": { + "entryPoint": 11684, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint128": { + "entryPoint": 11622, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 10175, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 10979, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11910, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 10855, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 11468, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11095, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 10791, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777": { + "entryPoint": 11705, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 14876, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 10043, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 15249, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 10196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 11846, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 10705, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 10100, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 15095, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 15451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack": { + "entryPoint": 10353, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10596, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13750, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12441, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14517, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14076, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14733, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12549, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14371, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15373, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13118, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14625, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13532, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12972, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12149, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12657, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12295, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15564, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15000, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint128_to_t_uint128_fromStack": { + "entryPoint": 10411, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 10368, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 15500, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 13799, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 10720, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 14800, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 15152, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 14289, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 10115, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed": { + "entryPoint": 10426, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12476, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14552, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14111, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12584, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14257, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14406, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15408, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12800, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13421, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13567, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13007, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12184, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12692, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15599, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15035, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13313, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 11024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 10938, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 11265, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 9935, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 11292, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 15067, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 10509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 15078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 15440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 10520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13739, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint128": { + "entryPoint": 13599, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12879, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 13948, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 13835, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 13185, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 10687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 10088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 9955, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IERC20_$777": { + "entryPoint": 11643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint128": { + "entryPoint": 10383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 10241, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 10142, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IERC20_$777_to_t_address": { + "entryPoint": 10335, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 10317, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 10283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 11341, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 10537, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 12021, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 11216, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 10273, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 13667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 12832, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13901, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11974, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 11169, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 11159, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 11164, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 9950, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 9945, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 10579, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 12362, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 14438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 13997, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57": { + "entryPoint": 14692, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a": { + "entryPoint": 12508, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 14143, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 14330, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 15294, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 13039, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03": { + "entryPoint": 12724, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c": { + "entryPoint": 13345, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6": { + "entryPoint": 14584, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e": { + "entryPoint": 13453, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 12931, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 12070, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721": { + "entryPoint": 12616, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 12216, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 15523, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 14921, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da": { + "entryPoint": 13237, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 10747, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 11051, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 9999, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IERC20_$777": { + "entryPoint": 11661, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint128": { + "entryPoint": 11599, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 10152, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:42060:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1584:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:22", + "type": "" + } + ], + "src": "1518:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1701:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1710:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1713:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1703:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1703:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1703:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1667:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1692:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1674:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1674:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1664:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1664:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1657:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1657:43:22" + }, + "nodeType": "YulIf", + "src": "1654:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1637:5:22", + "type": "" + } + ], + "src": "1601:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1781:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1791:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1813:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1800:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "1800:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1791:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1856:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1829:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "1829:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1829:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1759:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1767:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1775:5:22", + "type": "" + } + ], + "src": "1729:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1940:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1986:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1988:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "1988:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1988:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1961:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1970:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1957:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1982:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:32:22" + }, + "nodeType": "YulIf", + "src": "1950:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2079:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2094:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2108:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2098:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2123:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2158:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2169:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2154:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2154:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2178:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2133:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2133:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2123:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1910:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1921:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1933:6:22", + "type": "" + } + ], + "src": "1874:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2254:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2264:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2279:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2286:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2275:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2264:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2236:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2246:7:22", + "type": "" + } + ], + "src": "2209:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2373:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2383:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2390:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2383:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2359:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2369:3:22", + "type": "" + } + ], + "src": "2341:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2467:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2477:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2535:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2517:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2517:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "2508:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "2508:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2477:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2447:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2457:9:22", + "type": "" + } + ], + "src": "2407:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2615:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2625:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2669:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "2638:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2638:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2625:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2595:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2605:9:22", + "type": "" + } + ], + "src": "2555:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2761:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2771:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2815:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "2784:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2784:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2771:9:22" + } + ] + } + ] + }, + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2741:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2751:9:22", + "type": "" + } + ], + "src": "2687:140:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2912:80:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2929:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2979:5:22" + } + ], + "functionName": { + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulIdentifier", + "src": "2934:44:22" + }, + "nodeType": "YulFunctionCall", + "src": "2934:51:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2922:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2922:64:22" + } + ] + }, + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2900:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2907:3:22", + "type": "" + } + ], + "src": "2833:159:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3063:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3080:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3103:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3085:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3085:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3073:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3073:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3073:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3051:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3058:3:22", + "type": "" + } + ], + "src": "2998:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:73:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3177:57:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3192:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3199:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3188:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3188:46:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3177:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3149:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3159:7:22", + "type": "" + } + ], + "src": "3122:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3311:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3328:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3351:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "3333:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3333:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3321:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3321:37:22" + } + ] + }, + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3299:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3306:3:22", + "type": "" + } + ], + "src": "3246:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3594:468:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3604:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3616:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3627:3:22", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3612:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3612:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3604:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3699:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3712:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3723:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3708:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3708:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3641:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "3641:85:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3641:85:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3780:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3793:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3804:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3789:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3789:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3736:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3736:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3736:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3862:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3875:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3886:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3871:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3871:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3818:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3818:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3818:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3944:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3968:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3953:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3900:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3900:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3900:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4026:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4050:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4035:19:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3982:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3982:73:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3982:73:22" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3534:9:22", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3546:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3554:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3562:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3570:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3578:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3589:4:22", + "type": "" + } + ], + "src": "3370:692:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4127:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4138:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4154:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4148:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4148:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4138:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4110:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4120:6:22", + "type": "" + } + ], + "src": "4068:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4269:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4286:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4291:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4279:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4279:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4279:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "4307:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4326:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4331:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4322:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4322:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4307:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4241:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4246:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4257:11:22", + "type": "" + } + ], + "src": "4173:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4410:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4420:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4429:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4424:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4489:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4514:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4519:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4510:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4510:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4533:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4538:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4529:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4529:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4523:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4523:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4503:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4503:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4503:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4450:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4453:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4447:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4447:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4461:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4463:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4472:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4475:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4468:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4463:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4443:3:22", + "statements": [] + }, + "src": "4439:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4572:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4577:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4568:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4568:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4586:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4561:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4561:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4561:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4392:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4397:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4402:6:22", + "type": "" + } + ], + "src": "4348:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4648:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4658:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4676:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4683:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4672:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4672:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4692:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4688:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4688:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4668:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4658:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4631:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4641:6:22", + "type": "" + } + ], + "src": "4600:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4800:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4810:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4857:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4824:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "4824:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4814:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4872:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4938:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4943:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4879:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4872:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4998:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5005:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4994:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4994:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5012:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5017:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4959:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "4959:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4959:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "5033:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5044:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5071:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "5049:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "5049:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5040:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5040:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5033:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4781:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4788:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4796:3:22", + "type": "" + } + ], + "src": "4708:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5209:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5219:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5231:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5242:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5227:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5227:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5219:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5266:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5277:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5262:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5262:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5285:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5291:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5281:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5281:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5255:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5255:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "5311:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5383:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5392:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5319:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5311:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5181:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5193:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5204:4:22", + "type": "" + } + ], + "src": "5091:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5455:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5465:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5494:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5476:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5476:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5465:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5437:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5447:7:22", + "type": "" + } + ], + "src": "5410:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5577:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5594:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5617:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5599:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5599:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5587:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5587:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5587:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5565:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5572:3:22", + "type": "" + } + ], + "src": "5512:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5734:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5744:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5756:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5767:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5752:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5752:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5744:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5824:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5837:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5833:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5833:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5780:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5780:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5780:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5706:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5718:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5729:4:22", + "type": "" + } + ], + "src": "5636:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5907:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5964:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5973:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5976:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5966:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5966:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5930:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5955:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5937:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5937:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5927:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5927:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5920:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5920:43:22" + }, + "nodeType": "YulIf", + "src": "5917:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5900:5:22", + "type": "" + } + ], + "src": "5864:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6044:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6054:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6076:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6063:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "6063:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6054:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6119:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "6092:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "6092:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6092:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6022:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6030:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6038:5:22", + "type": "" + } + ], + "src": "5992:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6220:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6266:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6268:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6268:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6268:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6241:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6250:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6237:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6237:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6262:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6233:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6233:32:22" + }, + "nodeType": "YulIf", + "src": "6230:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6359:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6374:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6388:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6378:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6403:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6438:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6449:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6434:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6458:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6413:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6413:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6403:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6486:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6501:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6515:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6505:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6531:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6566:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6577:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6562:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6562:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6586:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6541:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6541:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6531:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6182:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6193:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6205:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6213:6:22", + "type": "" + } + ], + "src": "6137:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6717:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6763:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6765:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6765:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6765:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6738:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6747:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6734:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6734:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6759:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6730:32:22" + }, + "nodeType": "YulIf", + "src": "6727:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6856:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6871:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6885:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6875:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6900:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6935:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6946:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6931:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6955:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6910:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6910:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6900:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6983:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6998:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7012:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7002:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7028:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7063:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7074:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7059:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7059:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7083:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7038:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7038:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7028:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7111:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7126:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7140:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7130:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7156:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7191:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7202:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7187:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7187:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7211:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7166:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7166:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7156:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6671:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6682:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6694:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6702:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6710:6:22", + "type": "" + } + ], + "src": "6617:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7368:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7378:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7401:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7386:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7378:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7458:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7471:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7482:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7467:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7467:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7414:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7414:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7414:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7539:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7552:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7563:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7548:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7495:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7495:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7495:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7332:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7344:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7352:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7363:4:22", + "type": "" + } + ], + "src": "7242:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7646:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7692:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7694:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "7694:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7694:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7667:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7676:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7663:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7663:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7688:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7659:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7659:32:22" + }, + "nodeType": "YulIf", + "src": "7656:119:22" + }, + { + "nodeType": "YulBlock", + "src": "7785:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7800:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7814:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7804:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7829:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7864:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7875:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7860:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7860:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7884:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7839:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7839:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7829:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7616:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7627:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7639:6:22", + "type": "" + } + ], + "src": "7580:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8013:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8023:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8035:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8031:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8031:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8023:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8116:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8127:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8112:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "8059:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "8059:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8059:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7985:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7997:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8008:4:22", + "type": "" + } + ], + "src": "7915:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8183:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8237:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8249:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8239:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8239:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8206:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8228:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "8213:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "8213:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8203:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8203:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8196:40:22" + }, + "nodeType": "YulIf", + "src": "8193:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8176:5:22", + "type": "" + } + ], + "src": "8143:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8314:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8324:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8346:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8333:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8333:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8324:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8386:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "8362:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "8362:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8362:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8292:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8300:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8308:5:22", + "type": "" + } + ], + "src": "8265:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8484:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8530:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8532:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8532:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8532:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8505:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8514:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8501:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8526:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8497:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8497:32:22" + }, + "nodeType": "YulIf", + "src": "8494:119:22" + }, + { + "nodeType": "YulBlock", + "src": "8623:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8638:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8652:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8642:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8667:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8702:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8713:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8698:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8698:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8722:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8677:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "8677:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8667:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8750:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8765:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8779:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8769:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8795:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8827:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8838:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8823:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8847:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "8805:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8805:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8795:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8446:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8457:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8469:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8477:6:22", + "type": "" + } + ], + "src": "8404:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8967:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8984:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8987:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8977:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8977:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8977:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "8878:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9090:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9107:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9110:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9100:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9100:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9100:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "9001:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9152:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9169:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9172:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9162:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9162:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9162:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9266:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9269:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9259:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9259:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9259:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9290:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9293:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9283:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9283:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9283:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "9124:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9353:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9363:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9385:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9415:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "9393:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "9393:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9381:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9381:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "9367:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9532:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "9534:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "9534:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9534:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9475:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9487:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9472:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9472:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9511:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9523:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9508:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9508:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "9469:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9469:62:22" + }, + "nodeType": "YulIf", + "src": "9466:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9570:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9574:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9563:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9563:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9563:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9339:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9347:4:22", + "type": "" + } + ], + "src": "9310:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9638:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9648:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "9658:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "9658:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9648:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9707:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9715:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "9687:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "9687:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9687:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9622:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9631:6:22", + "type": "" + } + ], + "src": "9597:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9798:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "9905:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "9905:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9875:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9883:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9872:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9872:30:22" + }, + "nodeType": "YulIf", + "src": "9869:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "9935:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9965:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "9943:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "9943:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9935:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10009:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10021:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10027:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10017:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10017:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10009:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "9782:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9793:4:22", + "type": "" + } + ], + "src": "9732:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10109:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10132:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10137:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10142:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "10119:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "10119:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10119:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10169:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10174:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10165:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10165:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10183:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10158:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10158:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10158:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "10091:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "10096:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10101:6:22", + "type": "" + } + ], + "src": "10045:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10280:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10290:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10356:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "10315:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "10315:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "10299:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "10299:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10290:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10380:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10387:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10373:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10373:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10373:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10403:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10418:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10425:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10414:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10414:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "10407:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10468:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "10470:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10470:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10470:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10449:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10454:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10445:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10445:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10463:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10442:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10442:25:22" + }, + "nodeType": "YulIf", + "src": "10439:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10597:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10602:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10607:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "10560:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "10560:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10560:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "10253:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10258:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10266:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "10274:5:22", + "type": "" + } + ], + "src": "10197:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10700:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10749:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "10751:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10751:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10751:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10728:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10736:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10724:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10724:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10743:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10720:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10720:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10713:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10713:35:22" + }, + "nodeType": "YulIf", + "src": "10710:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10841:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10868:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10855:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "10855:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10845:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10884:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10944:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10952:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10940:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10940:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10959:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10967:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "10893:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "10893:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10884:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10678:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10686:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "10694:5:22", + "type": "" + } + ], + "src": "10639:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11109:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11156:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11158:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11158:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11158:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11130:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11139:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11126:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11151:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11122:33:22" + }, + "nodeType": "YulIf", + "src": "11119:120:22" + }, + { + "nodeType": "YulBlock", + "src": "11249:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11264:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11278:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11268:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11293:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11328:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11339:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11324:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11324:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11348:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11303:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11303:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11293:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11376:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11391:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11405:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11395:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11421:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11456:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11467:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11452:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11452:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11476:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11431:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11431:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11421:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11504:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11519:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11533:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11523:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11549:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11584:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11595:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11580:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11580:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11604:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11559:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11559:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11549:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11632:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11647:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11678:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11689:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11674:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11674:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11661:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "11661:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11651:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11740:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "11742:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11742:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11742:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11712:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11720:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11709:30:22" + }, + "nodeType": "YulIf", + "src": "11706:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "11837:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11881:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11892:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11877:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11877:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11901:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11847:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "11847:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "11837:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11055:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11066:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11078:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11086:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11094:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11102:6:22", + "type": "" + } + ], + "src": "10983:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11975:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12032:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12041:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12044:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12034:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12034:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12034:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11998:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12023:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "12005:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "12005:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11995:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11995:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11988:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11988:43:22" + }, + "nodeType": "YulIf", + "src": "11985:63:22" + } + ] + }, + "name": "validator_revert_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11968:5:22", + "type": "" + } + ], + "src": "11932:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12112:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12122:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12144:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12131:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12131:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12122:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12187:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "12160:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "12160:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12160:33:22" + } + ] + }, + "name": "abi_decode_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12090:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12098:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12106:5:22", + "type": "" + } + ], + "src": "12060:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12264:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12274:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12303:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "12285:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "12285:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "12274:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12246:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "12256:7:22", + "type": "" + } + ], + "src": "12205:110:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12378:93:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12449:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12458:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12461:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12451:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12451:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12451:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12401:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12440:5:22" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "12408:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "12408:38:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "12398:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "12398:49:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "12391:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12391:57:22" + }, + "nodeType": "YulIf", + "src": "12388:77:22" + } + ] + }, + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12371:5:22", + "type": "" + } + ], + "src": "12321:150:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12543:101:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12553:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12575:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12562:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12562:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12553:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12632:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "12591:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "12591:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12591:47:22" + } + ] + }, + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12521:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12529:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12537:5:22", + "type": "" + } + ], + "src": "12477:167:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12815:920:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12862:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12864:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12864:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12864:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12836:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12845:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12832:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12832:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12857:3:22", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12828:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12828:33:22" + }, + "nodeType": "YulIf", + "src": "12825:120:22" + }, + { + "nodeType": "YulBlock", + "src": "12955:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12970:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12984:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12974:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12999:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13034:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13045:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13030:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13030:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13054:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13009:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13009:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12999:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13082:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13097:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13111:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13101:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13127:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13162:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13173:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13158:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13158:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13182:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13137:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13137:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13210:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13225:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13239:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13229:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13255:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13290:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13301:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13286:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13286:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13310:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13265:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13265:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "13255:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13338:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13353:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13367:2:22", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13357:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13383:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13418:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13429:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13414:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13414:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13438:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13393:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13393:53:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13383:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13466:119:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13481:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13495:3:22", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13485:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13512:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13547:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13558:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13543:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13543:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13567:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13522:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13522:53:22" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "13512:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13595:133:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13610:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13624:3:22", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13614:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13641:77:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13690:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13701:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13686:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13710:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "13651:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "13651:67:22" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "13641:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12745:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12756:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12768:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12776:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12784:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12792:6:22", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "12800:6:22", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "12808:6:22", + "type": "" + } + ], + "src": "12650:1085:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13824:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13870:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13872:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13872:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13872:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13845:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13854:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13841:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13841:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13866:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13837:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13837:32:22" + }, + "nodeType": "YulIf", + "src": "13834:119:22" + }, + { + "nodeType": "YulBlock", + "src": "13963:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13978:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13992:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13982:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14007:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14042:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14053:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14038:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14038:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14062:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14017:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14017:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14007:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14090:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14105:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14119:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14109:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14135:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14170:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14181:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14166:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14190:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14145:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14145:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14135:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13786:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13797:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13809:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13817:6:22", + "type": "" + } + ], + "src": "13741:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14304:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14350:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14352:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "14352:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14352:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14325:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14334:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14321:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14321:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14346:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14317:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14317:32:22" + }, + "nodeType": "YulIf", + "src": "14314:119:22" + }, + { + "nodeType": "YulBlock", + "src": "14443:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14458:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14472:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14462:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14487:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14522:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14533:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14518:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14542:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14497:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14497:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14487:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14570:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14585:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14599:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14589:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14615:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14650:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14661:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14646:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14646:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14670:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14625:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14625:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14615:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14266:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14277:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14289:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14297:6:22", + "type": "" + } + ], + "src": "14221:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14729:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14746:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14749:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14739:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14739:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14739:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14846:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14836:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14836:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14836:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14867:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14870:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14860:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14860:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14860:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14701:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14938:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14948:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14962:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14968:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "14958:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14958:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14948:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14979:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "15009:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15015:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15005:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15005:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "14983:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15056:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15070:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15084:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15092:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15080:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15080:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15070:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15036:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15029:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15029:26:22" + }, + "nodeType": "YulIf", + "src": "15026:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15159:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "15173:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "15173:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15173:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15123:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15146:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15154:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "15143:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "15143:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "15120:38:22" + }, + "nodeType": "YulIf", + "src": "15117:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14922:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14931:6:22", + "type": "" + } + ], + "src": "14887:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15319:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15341:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15349:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15337:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15337:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15353:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15330:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15330:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15330:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15409:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15417:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15405:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15405:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15422:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15398:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15398:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15398:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15311:6:22", + "type": "" + } + ], + "src": "15213:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15585:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15595:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15661:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15666:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15602:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15602:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15595:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15767:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "15678:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15678:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15678:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15780:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15791:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15796:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15787:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15780:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15573:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15581:3:22", + "type": "" + } + ], + "src": "15439:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15982:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15992:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16004:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16015:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16000:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15992:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16050:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16035:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16058:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16064:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16054:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16054:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16028:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16028:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16028:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "16084:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16218:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16092:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "16092:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16084:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15962:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15977:4:22", + "type": "" + } + ], + "src": "15811:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16342:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16364:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16372:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16360:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16360:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16376:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16353:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16353:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16353:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16432:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16440:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16428:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16428:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16445:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16421:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16421:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16421:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16334:6:22", + "type": "" + } + ], + "src": "16236:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16636:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16646:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16712:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16717:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16653:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "16653:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16646:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16818:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "16729:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "16729:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16729:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "16831:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16842:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16847:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16838:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16838:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16831:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16624:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16632:3:22", + "type": "" + } + ], + "src": "16490:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17033:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17043:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17055:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17066:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17051:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17051:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17043:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17090:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17101:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17086:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17086:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17109:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17115:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17105:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17105:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17079:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17079:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17079:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17135:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17269:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17143:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17143:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17135:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17013:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17028:4:22", + "type": "" + } + ], + "src": "16862:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17393:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17415:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17423:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17411:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17411:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17427:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17404:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17404:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17404:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17483:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17491:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17479:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17479:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17496:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17472:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17472:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17472:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17385:6:22", + "type": "" + } + ], + "src": "17287:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17671:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17681:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17747:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17752:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17688:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17688:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17681:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17853:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "17764:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17764:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17764:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17866:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17877:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17882:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17873:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17873:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17866:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17659:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17667:3:22", + "type": "" + } + ], + "src": "17525:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18068:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18078:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18090:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18101:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18086:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18086:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18078:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18125:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18136:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18121:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18121:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18144:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18150:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18140:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18140:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18114:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18114:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18114:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18170:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18304:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18178:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "18178:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18170:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18048:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18063:4:22", + "type": "" + } + ], + "src": "17897:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18428:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18450:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18458:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18446:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18446:14:22" + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18462:27:22", + "type": "", + "value": "ERC5725: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18439:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18439:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18439:51:22" + } + ] + }, + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18420:6:22", + "type": "" + } + ], + "src": "18322:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18649:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18659:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18725:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18730:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18666:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18666:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18659:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18831:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulIdentifier", + "src": "18742:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18742:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18742:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18844:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18855:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18860:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18851:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18851:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18844:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18637:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18645:3:22", + "type": "" + } + ], + "src": "18503:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19046:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19056:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19068:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19079:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19064:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19064:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19056:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19103:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19114:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19099:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19099:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19122:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19128:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19118:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19118:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19092:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19092:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19092:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19148:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19282:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19156:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19156:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19148:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19026:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19041:4:22", + "type": "" + } + ], + "src": "18875:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19406:60:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19428:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19436:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19424:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19424:14:22" + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19440:18:22", + "type": "", + "value": "Not owner of NFT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19417:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19417:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19417:42:22" + } + ] + }, + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19398:6:22", + "type": "" + } + ], + "src": "19300:166:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19618:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19628:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19694:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19699:2:22", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19635:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19635:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19628:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19800:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulIdentifier", + "src": "19711:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19711:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19711:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19813:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19824:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19829:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19820:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19813:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19606:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19614:3:22", + "type": "" + } + ], + "src": "19472:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20015:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20025:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20037:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20048:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20033:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20033:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20025:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20072:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20083:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20068:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20068:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20091:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20097:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20087:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20087:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20061:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20061:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20061:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "20117:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20251:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20125:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "20125:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20117:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19995:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20010:4:22", + "type": "" + } + ], + "src": "19844:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20375:70:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20397:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20405:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20393:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20393:14:22" + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20409:28:22", + "type": "", + "value": "ERC5725: No pending payout" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20386:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20386:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20386:52:22" + } + ] + }, + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20367:6:22", + "type": "" + } + ], + "src": "20269:176:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20597:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20607:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20673:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20678:2:22", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20614:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20614:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20607:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20779:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulIdentifier", + "src": "20690:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20690:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20690:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20792:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20803:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20808:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20799:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20799:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20792:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20585:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20593:3:22", + "type": "" + } + ], + "src": "20451:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20994:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21004:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21016:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21027:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21012:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21012:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21004:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21051:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21062:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21047:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21047:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21070:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21076:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21066:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21066:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21040:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21040:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21040:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "21096:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21230:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21104:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "21104:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21096:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20974:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20989:4:22", + "type": "" + } + ], + "src": "20823:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21276:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21293:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21296:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21286:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21286:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21286:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21390:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21393:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21383:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21383:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21383:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21414:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21417:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21407:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21407:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21407:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "21248:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21478:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21488:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21511:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21493:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21493:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21488:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21522:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21545:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21527:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21527:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21522:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21556:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21567:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21570:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21563:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21563:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21556:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21596:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21598:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "21598:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21598:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21588:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21591:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21585:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "21585:10:22" + }, + "nodeType": "YulIf", + "src": "21582:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21465:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21468:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "21474:3:22", + "type": "" + } + ], + "src": "21434:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21737:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21759:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21767:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21755:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21771:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21748:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21748:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21748:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21729:6:22", + "type": "" + } + ], + "src": "21631:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21957:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21967:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22033:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22038:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21974:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "21974:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21967:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22139:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "22050:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "22050:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22050:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "22152:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22163:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22168:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22159:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22159:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22152:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21945:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21953:3:22", + "type": "" + } + ], + "src": "21811:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22354:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22364:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22376:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22387:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22372:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22372:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22364:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22411:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22422:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22407:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22430:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22436:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22426:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22426:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22400:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22400:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22400:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "22456:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22590:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22464:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "22464:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22456:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22334:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22349:4:22", + "type": "" + } + ], + "src": "22183:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22714:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22736:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22744:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22732:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22732:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22748:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22725:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22725:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22725:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22804:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22812:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22800:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22800:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22817:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22793:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22793:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22793:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22706:6:22", + "type": "" + } + ], + "src": "22608:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22988:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22998:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23064:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23069:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23005:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "23005:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22998:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23170:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "23081:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "23081:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23081:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "23183:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23194:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23199:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23190:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23190:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23183:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22976:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22984:3:22", + "type": "" + } + ], + "src": "22842:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23385:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23395:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23407:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23418:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23403:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23403:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23395:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23442:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23453:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23438:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23461:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23467:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23457:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23457:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23431:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23431:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23431:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "23487:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23621:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23495:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "23495:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23487:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23365:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23380:4:22", + "type": "" + } + ], + "src": "23214:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23684:149:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23694:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23717:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "23699:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "23699:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23694:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23728:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23751:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "23733:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "23733:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23728:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23762:17:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23774:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23777:1:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23770:9:22" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "23762:4:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23804:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "23806:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "23806:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23806:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "23795:4:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23801:1:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "23792:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "23792:11:22" + }, + "nodeType": "YulIf", + "src": "23789:37:22" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "23670:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "23673:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "23679:4:22", + "type": "" + } + ], + "src": "23639:194:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23945:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23967:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23975:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23963:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23963:14:22" + }, + { + "hexValue": "737461727454696d652063616e6e6f74206265206f6e207468652070617374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23979:33:22", + "type": "", + "value": "startTime cannot be on the past" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23956:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23956:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23956:57:22" + } + ] + }, + "name": "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23937:6:22", + "type": "" + } + ], + "src": "23839:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24172:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24182:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24248:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24253:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24189:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "24189:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24182:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24354:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "nodeType": "YulIdentifier", + "src": "24265:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "24265:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24265:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "24367:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24378:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24383:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24374:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24374:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24367:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24160:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24168:3:22", + "type": "" + } + ], + "src": "24026:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24569:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24579:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24591:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24602:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24587:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24587:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24579:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24626:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24637:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24622:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24622:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24645:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24651:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24641:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24641:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24615:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24615:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24615:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "24671:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24805:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24679:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "24679:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24671:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24549:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24564:4:22", + "type": "" + } + ], + "src": "24398:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24929:66:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24951:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24959:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24947:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24947:14:22" + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24963:24:22", + "type": "", + "value": "to cannot be address 0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24940:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24940:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24940:48:22" + } + ] + }, + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24921:6:22", + "type": "" + } + ], + "src": "24823:172:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25147:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25157:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25223:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25228:2:22", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25164:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "25164:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25157:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25329:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulIdentifier", + "src": "25240:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "25240:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25240:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "25342:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25353:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25358:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25349:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25349:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25342:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25135:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25143:3:22", + "type": "" + } + ], + "src": "25001:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25544:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25554:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25566:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25577:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25562:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25562:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25554:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25601:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25612:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25597:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25597:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25620:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25626:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25616:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25616:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25590:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25590:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25590:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "25646:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25780:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25654:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "25654:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25646:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25524:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25539:4:22", + "type": "" + } + ], + "src": "25373:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25904:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25926:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25934:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25922:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25922:14:22" + }, + { + "hexValue": "6475726174696f6e206e6565647320746f206265206d6f7265207468616e2063", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25938:34:22", + "type": "", + "value": "duration needs to be more than c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25915:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25915:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25915:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25994:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26002:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25990:15:22" + }, + { + "hexValue": "6c696666", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26007:6:22", + "type": "", + "value": "liff" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25983:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25983:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25983:31:22" + } + ] + }, + "name": "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25896:6:22", + "type": "" + } + ], + "src": "25798:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26173:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26183:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26249:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26254:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26190:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "26190:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26183:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26355:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "nodeType": "YulIdentifier", + "src": "26266:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "26266:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26266:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "26368:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26379:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26384:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26375:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26375:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26368:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26161:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26169:3:22", + "type": "" + } + ], + "src": "26027:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26570:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26580:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26592:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26603:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26588:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26588:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26580:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26627:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26638:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26623:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26623:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26646:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26642:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26642:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26616:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26616:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26616:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "26672:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26806:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26680:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "26680:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26672:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26550:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26565:4:22", + "type": "" + } + ], + "src": "26399:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26868:180:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26878:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26901:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "26883:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "26883:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26878:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26912:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26935:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "26917:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "26917:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26912:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26946:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26957:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26960:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26953:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "26946:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27019:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27021:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "27021:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27021:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "26978:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26983:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "26975:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "26975:43:22" + }, + "nodeType": "YulIf", + "src": "26972:69:22" + } + ] + }, + "name": "checked_add_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "26855:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "26858:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "26864:3:22", + "type": "" + } + ], + "src": "26824:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27097:190:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27107:33:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27134:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27116:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "27116:24:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27107:5:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27230:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27232:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "27232:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27232:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27155:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27162:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "27152:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "27152:77:22" + }, + "nodeType": "YulIf", + "src": "27149:103:22" + }, + { + "nodeType": "YulAssignment", + "src": "27261:20:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27272:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27279:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27268:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27268:13:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "27261:3:22" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "27083:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "27093:3:22", + "type": "" + } + ], + "src": "27054:233:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27407:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27417:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27432:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "27417:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27379:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27384:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "27395:11:22", + "type": "" + } + ], + "src": "27293:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27557:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "27567:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27614:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "27581:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "27581:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27571:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27629:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27713:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27718:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "27636:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "27636:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27629:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27773:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27780:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27769:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27769:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27787:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27792:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "27734:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "27734:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27734:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "27808:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27819:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27824:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27815:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27815:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27808:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "27538:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27545:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27553:3:22", + "type": "" + } + ], + "src": "27447:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28027:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28038:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28127:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28136:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28045:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "28045:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28038:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28150:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28239:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28248:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28157:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "28157:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28150:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28262:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28269:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28262:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27998:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "28004:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "28012:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28023:3:22", + "type": "" + } + ], + "src": "27843:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28332:362:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28342:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28365:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28347:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28347:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28342:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28376:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28399:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28381:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28381:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28376:1:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "28410:28:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28433:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28436:1:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "28429:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28429:9:22" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "28414:11:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28447:41:22", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "28476:11:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28458:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28458:30:22" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "28447:7:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28665:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "28667:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "28667:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28667:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28598:1:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "28591:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28591:9:22" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28621:1:22" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "28628:7:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28637:1:22" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "28624:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28624:15:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "28618:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "28618:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "28571:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "28571:83:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "28551:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28551:113:22" + }, + "nodeType": "YulIf", + "src": "28548:139:22" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "28315:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "28318:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "28324:7:22", + "type": "" + } + ], + "src": "28284:410:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28728:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28745:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28748:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28738:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28738:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28738:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28842:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28845:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28835:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28835:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28835:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28866:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28869:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "28859:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28859:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28859:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "28700:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28928:143:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28938:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28961:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28943:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28943:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28938:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28972:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28995:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28977:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28977:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28972:1:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29019:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "29021:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "29021:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29021:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "29016:1:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "29009:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29009:9:22" + }, + "nodeType": "YulIf", + "src": "29006:35:22" + }, + { + "nodeType": "YulAssignment", + "src": "29051:14:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "29060:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "29063:1:22" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "29056:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29056:9:22" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "29051:1:22" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "28917:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "28920:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "28926:1:22", + "type": "" + } + ], + "src": "28886:185:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29183:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29205:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29213:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29201:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29217:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29194:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29194:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29273:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29269:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29269:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29286:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29262:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29262:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29262:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29175:6:22", + "type": "" + } + ], + "src": "29077:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29453:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29463:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29529:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29534:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29470:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "29470:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29463:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29635:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "29546:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "29546:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29546:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "29648:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29659:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29655:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29655:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29648:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29441:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29449:3:22", + "type": "" + } + ], + "src": "29307:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29850:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29860:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29883:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29868:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29860:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29907:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29918:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29903:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29903:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29926:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29932:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29922:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29922:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29896:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29896:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29896:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "29952:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30086:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29960:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "29960:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29952:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29830:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29845:4:22", + "type": "" + } + ], + "src": "29679:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30210:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30232:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30240:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30228:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30228:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30244:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30221:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30221:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30221:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30300:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30308:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30296:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30296:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30313:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30289:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30289:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30289:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30202:6:22", + "type": "" + } + ], + "src": "30104:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30479:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30489:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30555:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30560:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30496:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "30496:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30489:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30661:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "30572:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "30572:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30572:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "30674:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30685:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30690:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30681:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30681:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30674:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30467:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30475:3:22", + "type": "" + } + ], + "src": "30333:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30876:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30886:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30898:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30909:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30894:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30894:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30886:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30933:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30944:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30929:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30929:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30952:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30958:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30948:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30948:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30922:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30922:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "30978:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31112:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30986:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "30986:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30978:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30856:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30871:4:22", + "type": "" + } + ], + "src": "30705:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31256:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31266:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31278:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31289:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31274:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31274:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31266:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31346:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31359:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31370:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31355:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31302:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31302:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31302:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31427:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31440:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31451:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31436:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31436:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "31383:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31383:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31383:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31220:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31232:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31240:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31251:4:22", + "type": "" + } + ], + "src": "31130:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31574:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31596:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31604:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31592:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31592:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31608:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31585:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "31585:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31585:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31566:6:22", + "type": "" + } + ], + "src": "31468:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31795:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31805:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31871:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31876:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31812:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "31812:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31805:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31977:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "31888:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "31888:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31888:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "31990:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32001:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32006:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31997:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31997:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31990:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31783:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31791:3:22", + "type": "" + } + ], + "src": "31649:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32192:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32202:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32214:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32225:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32210:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32210:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32202:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32249:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32260:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32245:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32245:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32268:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32274:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32264:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32264:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32238:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32238:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "32294:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32428:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32302:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "32302:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32294:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32172:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32187:4:22", + "type": "" + } + ], + "src": "32021:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32552:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32574:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32582:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32570:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32570:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32586:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32563:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32563:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32563:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32642:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32650:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32638:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32638:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32655:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32631:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32631:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32631:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32544:6:22", + "type": "" + } + ], + "src": "32446:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32835:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32845:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32911:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32916:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32852:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "32852:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32845:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33017:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "32928:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "32928:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32928:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "33030:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33041:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33046:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33037:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33037:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33030:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32823:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32831:3:22", + "type": "" + } + ], + "src": "32689:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33232:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33242:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33254:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33265:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33250:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33250:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33242:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33289:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33300:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33285:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33285:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33308:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33314:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33304:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33304:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33278:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33278:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33278:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "33334:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33468:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33342:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "33342:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33334:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33212:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33227:4:22", + "type": "" + } + ], + "src": "33061:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33592:76:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33614:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33622:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33610:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33610:14:22" + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33626:34:22", + "type": "", + "value": "ERC721: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33603:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33603:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33603:58:22" + } + ] + }, + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33584:6:22", + "type": "" + } + ], + "src": "33486:182:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33820:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33830:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33896:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33901:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33837:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "33837:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33830:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34002:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulIdentifier", + "src": "33913:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "33913:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33913:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34015:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34026:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34031:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34022:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34022:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34015:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33808:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33816:3:22", + "type": "" + } + ], + "src": "33674:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34217:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34227:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34239:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34250:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34235:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34227:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34274:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34285:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34270:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34270:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34293:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34299:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34289:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34289:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34263:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34263:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34263:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "34319:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34453:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34327:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "34327:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34319:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34197:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34212:4:22", + "type": "" + } + ], + "src": "34046:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34577:72:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34599:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34607:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34595:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34595:14:22" + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34611:30:22", + "type": "", + "value": "ERC721: token already minted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34588:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34588:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34588:54:22" + } + ] + }, + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34569:6:22", + "type": "" + } + ], + "src": "34471:178:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34801:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34811:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34877:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34882:2:22", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "34818:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34983:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulIdentifier", + "src": "34894:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "34894:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34894:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34996:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35007:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35012:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35003:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35003:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34996:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34789:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34797:3:22", + "type": "" + } + ], + "src": "34655:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35198:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35208:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35220:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35231:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35216:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35216:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35208:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35255:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35266:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35251:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35251:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35274:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35280:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35270:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35270:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35244:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "35244:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35244:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "35300:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35434:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35308:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "35308:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35300:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35178:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35193:4:22", + "type": "" + } + ], + "src": "35027:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35606:288:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35616:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35628:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35639:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35624:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35624:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35616:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "35696:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35709:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35720:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35705:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35652:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35652:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35652:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "35777:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35790:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35801:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35786:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35786:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35733:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35733:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35733:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "35859:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35883:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35868:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35815:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35815:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35815:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35562:9:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "35574:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35582:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35590:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35601:4:22", + "type": "" + } + ], + "src": "35452:442:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35960:77:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35970:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "35985:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "35979:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "35979:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35970:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36025:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "36001:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "36001:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36001:30:22" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "35938:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35946:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35954:5:22", + "type": "" + } + ], + "src": "35900:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36117:271:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "36163:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "36165:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "36165:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36165:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36138:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36147:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36134:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36159:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "36130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36130:32:22" + }, + "nodeType": "YulIf", + "src": "36127:119:22" + }, + { + "nodeType": "YulBlock", + "src": "36256:125:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36271:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36285:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36275:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36300:71:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36343:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36354:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36339:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36339:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36363:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "36310:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "36310:61:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36300:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36087:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "36098:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "36110:6:22", + "type": "" + } + ], + "src": "36043:345:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36500:123:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "36522:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36530:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36518:14:22" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "36534:34:22", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36511:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36511:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36511:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "36590:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36598:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36586:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36586:15:22" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "36603:12:22", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36579:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36579:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36579:37:22" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "36492:6:22", + "type": "" + } + ], + "src": "36394:229:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36775:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36785:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36851:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36856:2:22", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36792:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "36792:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36785:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36957:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "36868:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "36868:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36868:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "36970:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36981:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36986:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36977:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36977:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "36970:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36763:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36771:3:22", + "type": "" + } + ], + "src": "36629:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37172:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37182:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37194:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37205:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37190:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37190:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37182:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37229:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37240:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37225:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37225:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37248:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37254:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37244:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37218:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37218:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "37274:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37408:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37282:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "37282:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37274:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37152:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37167:4:22", + "type": "" + } + ], + "src": "37001:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37484:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37495:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37511:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37505:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "37505:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37495:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "37467:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37477:6:22", + "type": "" + } + ], + "src": "37426:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37625:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37642:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37647:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37635:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37635:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37635:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "37663:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37682:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37687:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37678:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37678:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "37663:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37597:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37602:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "37613:11:22", + "type": "" + } + ], + "src": "37530:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37794:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37804:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37850:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "37818:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "37818:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37808:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "37865:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37930:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37935:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37872:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "37872:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37865:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37990:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37997:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37986:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37986:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38004:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38009:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "37951:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "37951:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37951:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "38025:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38036:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38063:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "38041:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "38041:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38032:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38032:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38025:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "37775:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37782:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37790:3:22", + "type": "" + } + ], + "src": "37704:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38283:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38293:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38305:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38316:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38301:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38301:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38293:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "38374:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38387:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38398:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38383:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38383:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "38330:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38330:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38330:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "38455:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38468:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38479:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38464:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38464:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "38411:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38411:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38411:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "38537:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38550:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38561:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38546:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38546:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "38493:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38493:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38493:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38586:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38597:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38582:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38606:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38612:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38602:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38602:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38575:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "38575:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38575:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "38632:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "38702:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38711:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38640:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "38640:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38632:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38231:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "38243:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "38251:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "38259:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38267:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "38278:4:22", + "type": "" + } + ], + "src": "38083:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38791:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38801:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "38816:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38810:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "38810:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38801:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38858:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "38832:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "38832:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38832:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "38769:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38777:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38785:5:22", + "type": "" + } + ], + "src": "38729:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38952:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "38998:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "39000:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "39000:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39000:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "38973:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38969:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38969:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38994:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "38965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38965:32:22" + }, + "nodeType": "YulIf", + "src": "38962:119:22" + }, + { + "nodeType": "YulBlock", + "src": "39091:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "39106:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39120:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "39110:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "39135:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39180:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "39191:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39176:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39176:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "39200:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "39145:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "39145:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39135:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38922:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "38933:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38945:6:22", + "type": "" + } + ], + "src": "38876:349:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39337:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "39359:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39367:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39355:14:22" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "39371:34:22", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39348:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39348:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39348:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "39427:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39435:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39423:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39423:15:22" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "39440:8:22", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39416:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39416:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39416:33:22" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "39329:6:22", + "type": "" + } + ], + "src": "39231:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39608:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39618:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39684:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39689:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39625:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "39625:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39618:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39790:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "39701:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "39701:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39701:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "39803:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39814:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39819:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39810:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39810:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "39803:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "39596:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "39604:3:22", + "type": "" + } + ], + "src": "39462:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40005:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40015:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40027:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40038:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40023:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40023:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40015:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40062:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40073:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40058:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40058:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40081:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40087:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40077:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40077:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "40051:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "40051:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "40107:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40241:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40115:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "40115:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40107:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39985:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40000:4:22", + "type": "" + } + ], + "src": "39834:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40372:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40382:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40397:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "40382:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40344:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "40349:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "40360:11:22", + "type": "" + } + ], + "src": "40259:147:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40520:278:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "40530:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40576:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "40544:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "40544:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "40534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "40591:95:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40674:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40679:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "40598:75:22" + }, + "nodeType": "YulFunctionCall", + "src": "40598:88:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40591:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40734:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40741:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40730:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40748:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40753:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "40695:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "40695:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "40695:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "40769:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40780:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40785:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40776:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40776:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "40769:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "40501:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40508:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "40516:3:22", + "type": "" + } + ], + "src": "40412:386:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40938:137:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40949:100:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41036:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41045:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "40956:79:22" + }, + "nodeType": "YulFunctionCall", + "src": "40956:93:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40949:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "41059:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41066:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "41059:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40917:3:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40923:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "40934:3:22", + "type": "" + } + ], + "src": "40804:271:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41187:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "41209:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41217:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41205:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41205:14:22" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "41221:31:22", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41198:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "41198:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41198:55:22" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "41179:6:22", + "type": "" + } + ], + "src": "41081:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41412:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41422:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41488:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41493:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41429:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "41429:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41422:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41594:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "41505:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "41505:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41505:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "41607:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41618:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41623:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41614:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41614:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "41607:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "41400:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "41408:3:22", + "type": "" + } + ], + "src": "41266:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41809:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41819:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41831:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41842:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41827:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41827:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41819:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41866:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41877:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41862:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41862:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41885:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41891:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "41881:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41881:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41855:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "41855:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41855:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "41911:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42045:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41919:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "41919:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41911:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41789:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41804:4:22", + "type": "" + } + ], + "src": "41638:419:22" + } + ] + }, + "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_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 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_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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$777_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$777_to_t_address(value))\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 cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_contract$_IERC20_$777_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_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\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 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 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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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__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 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 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_decode_tuple_t_addresst_addresst_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_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 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 abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\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 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_contract$_IERC20_$777(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$777(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$777(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$777(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC20_$777(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { 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_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_contract$_IERC20_$777(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_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_uint256(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_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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__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_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of NFT\")\n\n }\n\n function abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__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_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: No pending payout\")\n\n }\n\n function abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__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_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack( tail)\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 store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da(memPtr) {\n\n mstore(add(memPtr, 0), \"startTime cannot be on the past\")\n\n }\n\n function abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__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_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(memPtr) {\n\n mstore(add(memPtr, 0), \"to cannot be address 0\")\n\n }\n\n function abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__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_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e(memPtr) {\n\n mstore(add(memPtr, 0), \"duration needs to be more than c\")\n\n mstore(add(memPtr, 32), \"liff\")\n\n }\n\n function abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__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_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint128(x, y) -> sum {\n x := cleanup_t_uint128(x)\n y := cleanup_t_uint128(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\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 store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__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_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\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 }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__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_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( 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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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 store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__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_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__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_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81D0526D GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xC196F42F EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x467 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C7 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x81D0526D EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3E3 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BE PUSH2 0x61B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x256 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0xA2A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP3 SWAP2 SWAP1 PUSH2 0x2ABA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x2AE3 JUMP JUMPDEST PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x34F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x2B57 JUMP JUMPDEST PUSH2 0xE2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x435 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x430 SWAP2 SWAP1 PUSH2 0x2DB9 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x451 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45E SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x2E46 JUMP JUMPDEST PUSH2 0x124C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48E SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AC SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x1327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DC SWAP2 SWAP1 PUSH2 0x2E86 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0x13CE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x62A SWAP1 PUSH2 0x2EF5 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 0x656 SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x678 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A3 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 0x686 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B8 DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FE DUP3 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x76E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x765 SWAP1 PUSH2 0x2F98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x78D PUSH2 0x14FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x7BC JUMPI POP PUSH2 0x7BB DUP2 PUSH2 0x7B6 PUSH2 0x14FB JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST JUMPDEST PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x302A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x805 DUP4 DUP4 PUSH2 0x1503 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x81B PUSH2 0x815 PUSH2 0x14FB JUMP JUMPDEST DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x851 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x865 DUP4 DUP4 DUP4 PUSH2 0x1651 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x874 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x8B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8AA SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8D3 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x920 SWAP1 PUSH2 0x3194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x934 DUP4 PUSH2 0xDB3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x979 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x970 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9EB SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA25 CALLER DUP3 PUSH2 0xA00 DUP7 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x198B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA57 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xA96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8D SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0xAA8 DUP6 PUSH2 0x1A5F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xABE DUP4 PUSH2 0x1AAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x3361 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBFB DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xC3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC31 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC43 DUP4 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xC4C DUP5 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC6A DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA0 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCD1 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xD10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD07 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP4 PUSH2 0x1B0A JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD30 SWAP1 PUSH2 0x2EF5 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 0xD5C SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA9 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 0xD8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xDBF DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF5 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE1B DUP5 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xE25 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE3F PUSH2 0xE38 PUSH2 0x14FB JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1B4A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE54 PUSH2 0xE4E PUSH2 0x14FB JUMP JUMPDEST DUP4 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8A SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE9F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST TIMESTAMP DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xEFA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF1 SWAP1 PUSH2 0x3401 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF69 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF60 SWAP1 PUSH2 0x346D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0xFD0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFC7 SWAP1 PUSH2 0x34FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP8 PUSH2 0x1028 SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP8 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1197 SWAP1 PUSH2 0x3563 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11A6 DUP8 DUP3 PUSH2 0x1D12 JUMP JUMPDEST PUSH2 0x11DB CALLER ADDRESS DUP9 PUSH2 0x11B5 DUP6 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1F2F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11EF DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F9 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1244 JUMP JUMPDEST DUP1 PUSH2 0x1223 DUP5 PUSH2 0x1FCF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x35E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1258 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x1297 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x128E SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12A0 DUP5 PUSH2 0x209D JUMP JUMPDEST DUP4 LT ISZERO PUSH2 0x12B0 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12B9 DUP5 PUSH2 0x1A5F JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12C9 DUP5 PUSH2 0x1AEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12D9 DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0x12E2 DUP6 PUSH2 0x1A5F JUMP JUMPDEST PUSH2 0x12EC SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x12F5 DUP6 PUSH2 0x1A11 JUMP JUMPDEST DUP5 PUSH2 0x1300 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x1309 DUP7 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0x1313 SWAP2 SWAP1 PUSH2 0x360B JUMP JUMPDEST PUSH2 0x131D SWAP2 SWAP1 PUSH2 0x367C JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1333 DUP3 TIMESTAMP PUSH2 0x124C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1499 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x14A9 JUMPI POP PUSH2 0x14A8 DUP3 PUSH2 0x20EB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14B9 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x14F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14EF SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1576 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C8 DUP4 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x160A JUMPI POP PUSH2 0x1609 DUP2 DUP6 PUSH2 0x133A JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1648 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1630 DUP5 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1671 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16BE SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1736 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x172D SWAP1 PUSH2 0x37B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1743 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1763 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B0 SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1945 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x196C DUP4 PUSH2 0x1AAD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A0C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x19AA SWAP3 SWAP2 SWAP1 PUSH2 0x37D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BAF SWAP1 PUSH2 0x3846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1CA9 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1CC1 DUP5 DUP5 DUP5 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x1CCD DUP5 DUP5 DUP5 DUP5 PUSH2 0x2228 JUMP JUMPDEST PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D78 SWAP1 PUSH2 0x3944 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8A DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC1 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1DD8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST PUSH2 0x1DE1 DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E18 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F2B PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1F50 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FDE DUP5 PUSH2 0x23AF JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x2BA1 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 0x202F 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 0x2092 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x2086 JUMPI PUSH2 0x2085 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x203D JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21C3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2502 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2223 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21E3 SWAP2 SWAP1 PUSH2 0x3A1C JUMP JUMPDEST PUSH2 0x2222 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2219 SWAP1 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2249 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x251A JUMP JUMPDEST ISZERO PUSH2 0x23A2 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x2272 PUSH2 0x14FB JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2294 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B30 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x22D0 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 0x22CD SWAP2 SWAP1 PUSH2 0x3B91 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2352 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2300 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 0x2305 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x234A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2341 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x23A7 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x240D JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x244A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2440 JUMPI PUSH2 0x243F PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2479 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x246F JUMPI PUSH2 0x246E PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x24A2 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x24C7 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x24BD JUMPI PUSH2 0x24BC PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x24EA JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24F9 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2511 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x253D JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2582 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2579 SWAP1 PUSH2 0x3C30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25AB SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25E8 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 0x25ED JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x25FE DUP8 DUP4 DUP4 DUP8 PUSH2 0x260A JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x266C JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x2664 JUMPI PUSH2 0x2624 DUP6 PUSH2 0x251A JUMP JUMPDEST PUSH2 0x2663 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x265A SWAP1 PUSH2 0x3CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x2676 DUP4 DUP4 PUSH2 0x267F JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x2692 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C6 SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2718 DUP2 PUSH2 0x26E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2735 DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2751 JUMPI PUSH2 0x2750 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275F DUP5 DUP3 DUP6 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x277D DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2798 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2774 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP2 EQ PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27CE DUP2 PUSH2 0x27A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27EA JUMPI PUSH2 0x27E9 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27F8 DUP5 DUP3 DUP6 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH2 0x2841 PUSH2 0x283C DUP5 PUSH2 0x2801 JUMP JUMPDEST PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2858 DUP3 PUSH2 0x282B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286A DUP3 PUSH2 0x284D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287A DUP2 PUSH2 0x285F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2889 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B4 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x28CF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x28DC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x28E9 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x28F6 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x2903 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28AB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2947 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x292C 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 0x296F DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x2979 DUP2 DUP6 PUSH2 0x2918 JUMP JUMPDEST SWAP4 POP PUSH2 0x2989 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x2992 DUP2 PUSH2 0x2953 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 0x29B7 DUP2 DUP5 PUSH2 0x2964 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29CA DUP3 PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29DA DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A04 DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP2 EQ PUSH2 0x2A0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A21 DUP2 PUSH2 0x29FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A3E JUMPI PUSH2 0x2A3D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A4C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A5D DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP7 DUP3 DUP8 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x2ADC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AF9 JUMPI PUSH2 0x2AF8 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B07 DUP5 DUP3 DUP6 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2B25 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B34 DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B51 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6E JUMPI PUSH2 0x2B6D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8D DUP6 DUP3 DUP7 ADD PUSH2 0x2B42 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD9 DUP3 PUSH2 0x2953 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF7 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0B PUSH2 0x26CF JUMP JUMPDEST SWAP1 POP PUSH2 0x2C17 DUP3 DUP3 PUSH2 0x2BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C37 JUMPI PUSH2 0x2C36 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST PUSH2 0x2C40 DUP3 PUSH2 0x2953 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 0x2C6F PUSH2 0x2C6A DUP5 PUSH2 0x2C1C JUMP JUMPDEST PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2C8B JUMPI PUSH2 0x2C8A PUSH2 0x2B9C JUMP JUMPDEST JUMPDEST PUSH2 0x2C96 DUP5 DUP3 DUP6 PUSH2 0x2C4D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CB3 JUMPI PUSH2 0x2CB2 PUSH2 0x2B97 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CC3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2CE6 JUMPI PUSH2 0x2CE5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CF4 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2D05 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2D16 DUP8 DUP3 DUP9 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D37 JUMPI PUSH2 0x2D36 PUSH2 0x26DE JUMP JUMPDEST JUMPDEST PUSH2 0x2D43 DUP8 DUP3 DUP9 ADD PUSH2 0x2C9E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2D58 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP2 EQ PUSH2 0x2D63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D75 DUP2 PUSH2 0x2D4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D86 DUP3 PUSH2 0x29BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D96 DUP2 PUSH2 0x2D7B JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2DB3 DUP2 PUSH2 0x2D8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI PUSH2 0x2DD5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2DE4 DUP10 DUP3 DUP11 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2DF5 DUP10 DUP3 DUP11 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2E06 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2E17 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2E28 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2E39 DUP10 DUP3 DUP11 ADD PUSH2 0x2DA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E5D JUMPI PUSH2 0x2E5C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E6B DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E7C DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E9D JUMPI PUSH2 0x2E9C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EAB DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2EBC DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2F0D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2F20 JUMPI PUSH2 0x2F1F PUSH2 0x2EC6 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F82 PUSH1 0x21 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F8D DUP3 PUSH2 0x2F26 JUMP JUMPDEST PUSH1 0x40 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 0x2FB1 DUP2 PUSH2 0x2F75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3014 PUSH1 0x3D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x301F DUP3 PUSH2 0x2FB8 JUMP JUMPDEST PUSH1 0x40 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 0x3043 DUP2 PUSH2 0x3007 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A6 PUSH1 0x2D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x30B1 DUP3 PUSH2 0x304A JUMP JUMPDEST PUSH1 0x40 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 0x30D5 DUP2 PUSH2 0x3099 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3112 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x311D DUP3 PUSH2 0x30DC 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 0x3141 DUP2 PUSH2 0x3105 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317E PUSH1 0x10 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3189 DUP3 PUSH2 0x3148 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 0x31AD DUP2 PUSH2 0x3171 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EA PUSH1 0x1A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x31F5 DUP3 PUSH2 0x31B4 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 0x3219 DUP2 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325A DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3265 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x327D JUMPI PUSH2 0x327C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B9 PUSH1 0x18 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x32C4 DUP3 PUSH2 0x3283 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 0x32E8 DUP2 PUSH2 0x32AC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334B PUSH1 0x29 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3356 DUP3 PUSH2 0x32EF JUMP JUMPDEST PUSH1 0x40 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 0x337A DUP2 PUSH2 0x333E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338C DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3397 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x33AF JUMPI PUSH2 0x33AE PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x737461727454696D652063616E6E6F74206265206F6E20746865207061737400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33EB PUSH1 0x1F DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F6 DUP3 PUSH2 0x33B5 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 0x341A DUP2 PUSH2 0x33DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x16 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3462 DUP3 PUSH2 0x3421 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 0x3486 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6475726174696F6E206E6565647320746F206265206D6F7265207468616E2063 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C69666600000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34E9 PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F4 DUP3 PUSH2 0x348D JUMP JUMPDEST PUSH1 0x40 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 0x3518 DUP2 PUSH2 0x34DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352A DUP3 PUSH2 0x288F JUMP JUMPDEST SWAP2 POP PUSH2 0x3535 DUP4 PUSH2 0x288F JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x355D JUMPI PUSH2 0x355C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356E DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x35A0 JUMPI PUSH2 0x359F PUSH2 0x3220 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C1 DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x35CB DUP2 DUP6 PUSH2 0x35AB JUMP JUMPDEST SWAP4 POP PUSH2 0x35DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35F3 DUP3 DUP6 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP PUSH2 0x35FF DUP3 DUP5 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3616 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3621 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x362F DUP2 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3646 JUMPI PUSH2 0x3645 PUSH2 0x3220 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3687 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3692 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x36A2 JUMPI PUSH2 0x36A1 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3709 PUSH1 0x25 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3714 DUP3 PUSH2 0x36AD JUMP JUMPDEST PUSH1 0x40 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 0x3738 DUP2 PUSH2 0x36FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379B PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x37A6 DUP3 PUSH2 0x373F JUMP JUMPDEST PUSH1 0x40 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 0x37CA DUP2 PUSH2 0x378E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x37E6 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x37F3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3830 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x383B DUP3 PUSH2 0x37FA 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 0x385F DUP2 PUSH2 0x3823 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C2 PUSH1 0x32 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x38CD DUP3 PUSH2 0x3866 JUMP JUMPDEST PUSH1 0x40 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 0x38F1 DUP2 PUSH2 0x38B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x392E PUSH1 0x20 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3939 DUP3 PUSH2 0x38F8 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 0x395D DUP2 PUSH2 0x3921 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x399A PUSH1 0x1C DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x39A5 DUP3 PUSH2 0x3964 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 0x39C9 DUP2 PUSH2 0x398D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x39E5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3A16 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A32 JUMPI PUSH2 0x3A31 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x3A07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA5 PUSH1 0x2A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AB0 DUP3 PUSH2 0x3A49 JUMP JUMPDEST PUSH1 0x40 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 0x3AD4 DUP2 PUSH2 0x3A98 JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x3B02 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3B0C DUP2 DUP6 PUSH2 0x3AE6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x3B25 DUP2 PUSH2 0x2953 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3B45 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3B71 DUP2 DUP5 PUSH2 0x3AF7 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3B8B DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA7 JUMPI PUSH2 0x3BA6 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3BB5 DUP5 DUP3 DUP6 ADD PUSH2 0x3B7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1A PUSH1 0x26 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3C25 DUP3 PUSH2 0x3BBE JUMP JUMPDEST PUSH1 0x40 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 0x3C49 DUP2 PUSH2 0x3C0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C66 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3C70 DUP2 DUP6 PUSH2 0x3C50 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C98 DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CD9 PUSH1 0x1D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3CE4 DUP3 PUSH2 0x3CA3 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 0x3D08 DUP2 PUSH2 0x3CCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x29 0xCC 0xB4 0xD7 SAR MLOAD 0xCB DIV PUSH14 0x97D5B0FCCA978FD585CBF5594A67 0x4A DUP8 DUP5 PUSH10 0x20D1E45264736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:3640:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:267:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:50:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;2471:98:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;873:474:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2642:250:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2190:219:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1828:224:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:233:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1332:839:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2221:472:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:163:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:267:17;3350:14;3402:26;3387:41;;;:11;:41;;;;:81;;;;3432:36;3456:11;3432:23;:36::i;:::-;3387:81;3380:88;;3208:267;;;:::o;524:50:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2471:98:6:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;873:474:17:-;944:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;991:10:::1;971:30;;:16;979:7;971;:16::i;:::-;:30;;;963:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:21;1056:24;1072:7;1056:15;:24::i;:::-;1032:48;;1114:1;1098:13;:17;1090:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1185:10;1162:49;;1176:7;1162:49;1197:13;1162:49;;;;;;:::i;:::-;;;;;;;;1249:13;1222:14;:23;1237:7;1222:23;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;1272:68;1314:10;1326:13;1279:20;1291:7;1279:11;:20::i;:::-;1272:41;;;;:68;;;;;:::i;:::-;953:394;873:474:::0;;:::o;5004:179:6:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2642:250:17:-;2782:20;2804:18;2756:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:19:::1;2857:7;2846:10;:19::i;:::-;2867:17;2876:7;2867:8;:17::i;:::-;2838:47;;;;2642:250:::0;;;;:::o;2190:219:6:-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;1828:224:17:-;1968:14;1942:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2024:21:::1;2037:7;2024:12;:21::i;:::-;2005:16;2013:7;2005;:16::i;:::-;:40;;;;:::i;:::-;1998:47;;1828:224:::0;;;;:::o;2385:207::-;2525:14;2499:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2562:14:::1;:23;2577:7;2562:23;;;;;;;;;;;;2555:30;;2385:207:::0;;;;:::o;2942:158::-;3040:13;3022:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3072:21:::1;3085:7;3072:12;:21::i;:::-;3065:28;;2942:158:::0;;;;:::o;2633:102:6:-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;2102:233:17:-;2244:14;2218:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:14:::1;:23;2320:7;2305:23;;;;;;;;;;;;2281:21;2294:7;2281:12;:21::i;:::-;:47;;;;:::i;:::-;2274:54;;2102:233:::0;;;;:::o;4169:153:6:-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;1332:839:20:-;1542:15;1529:9;:28;;;;1521:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1625:1;1611:16;;:2;:16;;;1603:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1681:8;1672:17;;:5;:17;;;;1664:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1741:18;1762:15;;1741:36;;1814:198;;;;;;;;1853:5;1814:198;;;;;;1880:6;1814:198;;;;1911:9;1814:198;;;;;;1955:8;1943:9;:20;;;;:::i;:::-;1814:198;;;;;;1996:5;1984:9;:17;;;;:::i;:::-;1814:198;;;;;1788:11;:23;1800:10;1788:23;;;;;;;;;;;:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:15;;:17;;;;;;;;;:::i;:::-;;;;;;2050:21;2056:2;2060:10;2050:5;:21::i;:::-;2081:83;2130:10;2150:4;2157:6;2088:23;2100:10;2088:11;:23::i;:::-;2081:48;;;;:83;;;;;;:::i;:::-;1511:660;1332:839;;;;;;:::o;2801:276:6:-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;2221:472:20:-;2384:14;2358:7;759:16:17;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2430:15:20::1;2437:7;2430:6;:15::i;:::-;2418:9;:27;2414:66;;;2468:1;2461:8;;;;2414:66;2505:17;2514:7;2505:8;:17::i;:::-;2493:9;:29;2489:83;;;2545:16;2553:7;2545;:16::i;:::-;2538:23;;;;2489:83;2666:19;2677:7;2666:10;:19::i;:::-;2646:17;2655:7;2646:8;:17::i;:::-;:39;;;;:::i;:::-;2621:19;2632:7;2621:10;:19::i;:::-;2609:9;:31;;;;:::i;:::-;2589:16;2597:7;2589;:16::i;:::-;:52;;;;:::i;:::-;2588:98;;;;:::i;:::-;2581:105;;815:1:17;2221:472:20::0;;;;;:::o;1397:163:17:-;1476:14;1509:44;1528:7;1537:15;1509:18;:44::i;:::-;1502:51;;1397:163;;;:::o;4388:162:6:-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;1570:300::-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;13466:133::-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;7256:126::-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;763:205:5:-;875:86;895:5;925:23;;;950:2;954:5;902:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;:::-;763:205;;;:::o;3111:132:20:-;3180:7;3206:11;:20;3218:7;3206:20;;;;;;;;;;;:30;;;;;;;;;;;;3199:37;;;;3111:132;;;:::o;3292:128::-;3359:7;3385:11;:20;3397:7;3385:20;;;;;;;;;;;:28;;;;;;;;;;;;3378:35;;;;3292:128;;;:::o;6838:115:6:-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;2936:126:20:-;3002:7;3028:11;:20;3040:7;3028:20;;;;;;;;;;;:27;;;3021:34;;2936:126;;;:::o;2742:145::-;2813:7;2847:11;:20;2859:7;2847:20;;;;;;;;;;;:32;;;;;;;;;;;;2832:48;;2742:145;;;:::o;13075:307:6:-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;9091:920::-;9184:1;9170:16;;:2;:16;;;9162:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:16;9250:7;9242;:16::i;:::-;9241:17;9233:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;9446:16;9454:7;9446;:16::i;:::-;9445:17;9437:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:1;9837:9;:13;9847:2;9837:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9895:2;9876:7;:16;9884:7;9876:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9938:7;9934:2;9913:33;;9930:1;9913:33;;;;;;;;;;;;9957:47;9985:1;9989:2;9993:7;10002:1;9957:19;:47::i;:::-;9091:920;;:::o;974:241:5:-;1112:96;1132:5;1162:27;;;1191:4;1197:2;1201:5;1139:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:19;:96::i;:::-;974:241;;;;:::o;3319:92:6:-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;3611:115:20:-;3667:7;3693:11;:20;3705:7;3693:20;;;;;;;;;;;:26;;;;;;;;;;;;3686:33;;;;3611:115;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;15698:154:6:-;;;;;:::o;16558:153::-;;;;;:::o;3747:706:5:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4166:95;;4295:1;4275:10;:17;:21;4271:176;;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:176;3817:636;3747:706;;:::o;14151:831:6:-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;3873:223:10:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;;3873:223;;;;;:::o;1175:320::-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;4960:446::-;5125:12;5182:5;5157:21;:30;;5149:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5241:12;5255:23;5282:6;:11;;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;;;;4960:446;;;;;;:::o;7466:628::-;7646:12;7674:7;7670:418;;;7722:1;7701:10;:17;:22;7697:286;;7916:18;7927:6;7916:10;:18::i;:::-;7908:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:286;8003:10;7996:17;;;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;;:::o;8616:540::-;8795:1;8775:10;:17;:21;8771:379;;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:75:22;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:60::-;2369:3;2390:5;2383:12;;2341:60;;;:::o;2407:142::-;2457:9;2490:53;2508:34;2517:24;2535:5;2517:24;:::i;:::-;2508:34;:::i;:::-;2490:53;:::i;:::-;2477:66;;2407:142;;;:::o;2555:126::-;2605:9;2638:37;2669:5;2638:37;:::i;:::-;2625:50;;2555:126;;;:::o;2687:140::-;2751:9;2784:37;2815:5;2784:37;:::i;:::-;2771:50;;2687:140;;;:::o;2833:159::-;2934:51;2979:5;2934:51;:::i;:::-;2929:3;2922:64;2833:159;;:::o;2998:118::-;3085:24;3103:5;3085:24;:::i;:::-;3080:3;3073:37;2998:118;;:::o;3122:::-;3159:7;3199:34;3192:5;3188:46;3177:57;;3122:118;;;:::o;3246:::-;3333:24;3351:5;3333:24;:::i;:::-;3328:3;3321:37;3246:118;;:::o;3370:692::-;3589:4;3627:3;3616:9;3612:19;3604:27;;3641:85;3723:1;3712:9;3708:17;3699:6;3641:85;:::i;:::-;3736:72;3804:2;3793:9;3789:18;3780:6;3736:72;:::i;:::-;3818;3886:2;3875:9;3871:18;3862:6;3818:72;:::i;:::-;3900;3968:2;3957:9;3953:18;3944:6;3900:72;:::i;:::-;3982:73;4050:3;4039:9;4035:19;4026:6;3982:73;:::i;:::-;3370:692;;;;;;;;:::o;4068:99::-;4120:6;4154:5;4148:12;4138:22;;4068:99;;;:::o;4173:169::-;4257:11;4291:6;4286:3;4279:19;4331:4;4326:3;4322:14;4307:29;;4173:169;;;;:::o;4348:246::-;4429:1;4439:113;4453:6;4450:1;4447:13;4439:113;;;4538:1;4533:3;4529:11;4523:18;4519:1;4514:3;4510:11;4503:39;4475:2;4472:1;4468:10;4463:15;;4439:113;;;4586:1;4577:6;4572:3;4568:16;4561:27;4410:184;4348:246;;;:::o;4600:102::-;4641:6;4692:2;4688:7;4683:2;4676:5;4672:14;4668:28;4658:38;;4600:102;;;:::o;4708:377::-;4796:3;4824:39;4857:5;4824:39;:::i;:::-;4879:71;4943:6;4938:3;4879:71;:::i;:::-;4872:78;;4959:65;5017:6;5012:3;5005:4;4998:5;4994:16;4959:65;:::i;:::-;5049:29;5071:6;5049:29;:::i;:::-;5044:3;5040:39;5033:46;;4800:285;4708:377;;;;:::o;5091:313::-;5204:4;5242:2;5231:9;5227:18;5219:26;;5291:9;5285:4;5281:20;5277:1;5266:9;5262:17;5255:47;5319:78;5392:4;5383:6;5319:78;:::i;:::-;5311:86;;5091:313;;;;:::o;5410:96::-;5447:7;5476:24;5494:5;5476:24;:::i;:::-;5465:35;;5410:96;;;:::o;5512:118::-;5599:24;5617:5;5599:24;:::i;:::-;5594:3;5587:37;5512:118;;:::o;5636:222::-;5729:4;5767:2;5756:9;5752:18;5744:26;;5780:71;5848:1;5837:9;5833:17;5824:6;5780:71;:::i;:::-;5636:222;;;;:::o;5864:122::-;5937:24;5955:5;5937:24;:::i;:::-;5930:5;5927:35;5917:63;;5976:1;5973;5966:12;5917:63;5864:122;:::o;5992:139::-;6038:5;6076:6;6063:20;6054:29;;6092:33;6119:5;6092:33;:::i;:::-;5992:139;;;;:::o;6137:474::-;6205:6;6213;6262:2;6250:9;6241:7;6237:23;6233:32;6230:119;;;6268:79;;:::i;:::-;6230:119;6388:1;6413:53;6458:7;6449:6;6438:9;6434:22;6413:53;:::i;:::-;6403:63;;6359:117;6515:2;6541:53;6586:7;6577:6;6566:9;6562:22;6541:53;:::i;:::-;6531:63;;6486:118;6137:474;;;;;:::o;6617:619::-;6694:6;6702;6710;6759:2;6747:9;6738:7;6734:23;6730:32;6727:119;;;6765:79;;:::i;:::-;6727:119;6885:1;6910:53;6955:7;6946:6;6935:9;6931:22;6910:53;:::i;:::-;6900:63;;6856:117;7012:2;7038:53;7083:7;7074:6;7063:9;7059:22;7038:53;:::i;:::-;7028:63;;6983:118;7140:2;7166:53;7211:7;7202:6;7191:9;7187:22;7166:53;:::i;:::-;7156:63;;7111:118;6617:619;;;;;:::o;7242:332::-;7363:4;7401:2;7390:9;7386:18;7378:26;;7414:71;7482:1;7471:9;7467:17;7458:6;7414:71;:::i;:::-;7495:72;7563:2;7552:9;7548:18;7539:6;7495:72;:::i;:::-;7242:332;;;;;:::o;7580:329::-;7639:6;7688:2;7676:9;7667:7;7663:23;7659:32;7656:119;;;7694:79;;:::i;:::-;7656:119;7814:1;7839:53;7884:7;7875:6;7864:9;7860:22;7839:53;:::i;:::-;7829:63;;7785:117;7580:329;;;;:::o;7915:222::-;8008:4;8046:2;8035:9;8031:18;8023:26;;8059:71;8127:1;8116:9;8112:17;8103:6;8059:71;:::i;:::-;7915:222;;;;:::o;8143:116::-;8213:21;8228:5;8213:21;:::i;:::-;8206:5;8203:32;8193:60;;8249:1;8246;8239:12;8193:60;8143:116;:::o;8265:133::-;8308:5;8346:6;8333:20;8324:29;;8362:30;8386:5;8362:30;:::i;:::-;8265:133;;;;:::o;8404:468::-;8469:6;8477;8526:2;8514:9;8505:7;8501:23;8497:32;8494:119;;;8532:79;;:::i;:::-;8494:119;8652:1;8677:53;8722:7;8713:6;8702:9;8698:22;8677:53;:::i;:::-;8667:63;;8623:117;8779:2;8805:50;8847:7;8838:6;8827:9;8823:22;8805:50;:::i;:::-;8795:60;;8750:115;8404:468;;;;;:::o;8878:117::-;8987:1;8984;8977:12;9001:117;9110:1;9107;9100:12;9124:180;9172:77;9169:1;9162:88;9269:4;9266:1;9259:15;9293:4;9290:1;9283:15;9310:281;9393:27;9415:4;9393:27;:::i;:::-;9385:6;9381:40;9523:6;9511:10;9508:22;9487:18;9475:10;9472:34;9469:62;9466:88;;;9534:18;;:::i;:::-;9466:88;9574:10;9570:2;9563:22;9353:238;9310:281;;:::o;9597:129::-;9631:6;9658:20;;:::i;:::-;9648:30;;9687:33;9715:4;9707:6;9687:33;:::i;:::-;9597:129;;;:::o;9732:307::-;9793:4;9883:18;9875:6;9872:30;9869:56;;;9905:18;;:::i;:::-;9869:56;9943:29;9965:6;9943:29;:::i;:::-;9935:37;;10027:4;10021;10017:15;10009:23;;9732:307;;;:::o;10045:146::-;10142:6;10137:3;10132;10119:30;10183:1;10174:6;10169:3;10165:16;10158:27;10045:146;;;:::o;10197:423::-;10274:5;10299:65;10315:48;10356:6;10315:48;:::i;:::-;10299:65;:::i;:::-;10290:74;;10387:6;10380:5;10373:21;10425:4;10418:5;10414:16;10463:3;10454:6;10449:3;10445:16;10442:25;10439:112;;;10470:79;;:::i;:::-;10439:112;10560:54;10607:6;10602:3;10597;10560:54;:::i;:::-;10280:340;10197:423;;;;;:::o;10639:338::-;10694:5;10743:3;10736:4;10728:6;10724:17;10720:27;10710:122;;10751:79;;:::i;:::-;10710:122;10868:6;10855:20;10893:78;10967:3;10959:6;10952:4;10944:6;10940:17;10893:78;:::i;:::-;10884:87;;10700:277;10639:338;;;;:::o;10983:943::-;11078:6;11086;11094;11102;11151:3;11139:9;11130:7;11126:23;11122:33;11119:120;;;11158:79;;:::i;:::-;11119:120;11278:1;11303:53;11348:7;11339:6;11328:9;11324:22;11303:53;:::i;:::-;11293:63;;11249:117;11405:2;11431:53;11476:7;11467:6;11456:9;11452:22;11431:53;:::i;:::-;11421:63;;11376:118;11533:2;11559:53;11604:7;11595:6;11584:9;11580:22;11559:53;:::i;:::-;11549:63;;11504:118;11689:2;11678:9;11674:18;11661:32;11720:18;11712:6;11709:30;11706:117;;;11742:79;;:::i;:::-;11706:117;11847:62;11901:7;11892:6;11881:9;11877:22;11847:62;:::i;:::-;11837:72;;11632:287;10983:943;;;;;;;:::o;11932:122::-;12005:24;12023:5;12005:24;:::i;:::-;11998:5;11995:35;11985:63;;12044:1;12041;12034:12;11985:63;11932:122;:::o;12060:139::-;12106:5;12144:6;12131:20;12122:29;;12160:33;12187:5;12160:33;:::i;:::-;12060:139;;;;:::o;12205:110::-;12256:7;12285:24;12303:5;12285:24;:::i;:::-;12274:35;;12205:110;;;:::o;12321:150::-;12408:38;12440:5;12408:38;:::i;:::-;12401:5;12398:49;12388:77;;12461:1;12458;12451:12;12388:77;12321:150;:::o;12477:167::-;12537:5;12575:6;12562:20;12553:29;;12591:47;12632:5;12591:47;:::i;:::-;12477:167;;;;:::o;12650:1085::-;12768:6;12776;12784;12792;12800;12808;12857:3;12845:9;12836:7;12832:23;12828:33;12825:120;;;12864:79;;:::i;:::-;12825:120;12984:1;13009:53;13054:7;13045:6;13034:9;13030:22;13009:53;:::i;:::-;12999:63;;12955:117;13111:2;13137:53;13182:7;13173:6;13162:9;13158:22;13137:53;:::i;:::-;13127:63;;13082:118;13239:2;13265:53;13310:7;13301:6;13290:9;13286:22;13265:53;:::i;:::-;13255:63;;13210:118;13367:2;13393:53;13438:7;13429:6;13418:9;13414:22;13393:53;:::i;:::-;13383:63;;13338:118;13495:3;13522:53;13567:7;13558:6;13547:9;13543:22;13522:53;:::i;:::-;13512:63;;13466:119;13624:3;13651:67;13710:7;13701:6;13690:9;13686:22;13651:67;:::i;:::-;13641:77;;13595:133;12650:1085;;;;;;;;:::o;13741:474::-;13809:6;13817;13866:2;13854:9;13845:7;13841:23;13837:32;13834:119;;;13872:79;;:::i;:::-;13834:119;13992:1;14017:53;14062:7;14053:6;14042:9;14038:22;14017:53;:::i;:::-;14007:63;;13963:117;14119:2;14145:53;14190:7;14181:6;14170:9;14166:22;14145:53;:::i;:::-;14135:63;;14090:118;13741:474;;;;;:::o;14221:::-;14289:6;14297;14346:2;14334:9;14325:7;14321:23;14317:32;14314:119;;;14352:79;;:::i;:::-;14314:119;14472:1;14497:53;14542:7;14533:6;14522:9;14518:22;14497:53;:::i;:::-;14487:63;;14443:117;14599:2;14625:53;14670:7;14661:6;14650:9;14646:22;14625:53;:::i;:::-;14615:63;;14570:118;14221:474;;;;;:::o;14701:180::-;14749:77;14746:1;14739:88;14846:4;14843:1;14836:15;14870:4;14867:1;14860:15;14887:320;14931:6;14968:1;14962:4;14958:12;14948:22;;15015:1;15009:4;15005:12;15036:18;15026:81;;15092:4;15084:6;15080:17;15070:27;;15026:81;15154:2;15146:6;15143:14;15123:18;15120:38;15117:84;;15173:18;;:::i;:::-;15117:84;14938:269;14887:320;;;:::o;15213:220::-;15353:34;15349:1;15341:6;15337:14;15330:58;15422:3;15417:2;15409:6;15405:15;15398:28;15213:220;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:248::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:31;16440:2;16432:6;16428:15;16421:56;16236:248;:::o;16490:366::-;16632:3;16653:67;16717:2;16712:3;16653:67;:::i;:::-;16646:74;;16729:93;16818:3;16729:93;:::i;:::-;16847:2;16842:3;16838:12;16831:19;;16490:366;;;:::o;16862:419::-;17028:4;17066:2;17055:9;17051:18;17043:26;;17115:9;17109:4;17105:20;17101:1;17090:9;17086:17;17079:47;17143:131;17269:4;17143:131;:::i;:::-;17135:139;;16862:419;;;:::o;17287:232::-;17427:34;17423:1;17415:6;17411:14;17404:58;17496:15;17491:2;17483:6;17479:15;17472:40;17287:232;:::o;17525:366::-;17667:3;17688:67;17752:2;17747:3;17688:67;:::i;:::-;17681:74;;17764:93;17853:3;17764:93;:::i;:::-;17882:2;17877:3;17873:12;17866:19;;17525:366;;;:::o;17897:419::-;18063:4;18101:2;18090:9;18086:18;18078:26;;18150:9;18144:4;18140:20;18136:1;18125:9;18121:17;18114:47;18178:131;18304:4;18178:131;:::i;:::-;18170:139;;17897:419;;;:::o;18322:175::-;18462:27;18458:1;18450:6;18446:14;18439:51;18322:175;:::o;18503:366::-;18645:3;18666:67;18730:2;18725:3;18666:67;:::i;:::-;18659:74;;18742:93;18831:3;18742:93;:::i;:::-;18860:2;18855:3;18851:12;18844:19;;18503:366;;;:::o;18875:419::-;19041:4;19079:2;19068:9;19064:18;19056:26;;19128:9;19122:4;19118:20;19114:1;19103:9;19099:17;19092:47;19156:131;19282:4;19156:131;:::i;:::-;19148:139;;18875:419;;;:::o;19300:166::-;19440:18;19436:1;19428:6;19424:14;19417:42;19300:166;:::o;19472:366::-;19614:3;19635:67;19699:2;19694:3;19635:67;:::i;:::-;19628:74;;19711:93;19800:3;19711:93;:::i;:::-;19829:2;19824:3;19820:12;19813:19;;19472:366;;;:::o;19844:419::-;20010:4;20048:2;20037:9;20033:18;20025:26;;20097:9;20091:4;20087:20;20083:1;20072:9;20068:17;20061:47;20125:131;20251:4;20125:131;:::i;:::-;20117:139;;19844:419;;;:::o;20269:176::-;20409:28;20405:1;20397:6;20393:14;20386:52;20269:176;:::o;20451:366::-;20593:3;20614:67;20678:2;20673:3;20614:67;:::i;:::-;20607:74;;20690:93;20779:3;20690:93;:::i;:::-;20808:2;20803:3;20799:12;20792:19;;20451:366;;;:::o;20823:419::-;20989:4;21027:2;21016:9;21012:18;21004:26;;21076:9;21070:4;21066:20;21062:1;21051:9;21047:17;21040:47;21104:131;21230:4;21104:131;:::i;:::-;21096:139;;20823:419;;;:::o;21248:180::-;21296:77;21293:1;21286:88;21393:4;21390:1;21383:15;21417:4;21414:1;21407:15;21434:191;21474:3;21493:20;21511:1;21493:20;:::i;:::-;21488:25;;21527:20;21545:1;21527:20;:::i;:::-;21522:25;;21570:1;21567;21563:9;21556:16;;21591:3;21588:1;21585:10;21582:36;;;21598:18;;:::i;:::-;21582:36;21434:191;;;;:::o;21631:174::-;21771:26;21767:1;21759:6;21755:14;21748:50;21631:174;:::o;21811:366::-;21953:3;21974:67;22038:2;22033:3;21974:67;:::i;:::-;21967:74;;22050:93;22139:3;22050:93;:::i;:::-;22168:2;22163:3;22159:12;22152:19;;21811:366;;;:::o;22183:419::-;22349:4;22387:2;22376:9;22372:18;22364:26;;22436:9;22430:4;22426:20;22422:1;22411:9;22407:17;22400:47;22464:131;22590:4;22464:131;:::i;:::-;22456:139;;22183:419;;;:::o;22608:228::-;22748:34;22744:1;22736:6;22732:14;22725:58;22817:11;22812:2;22804:6;22800:15;22793:36;22608:228;:::o;22842:366::-;22984:3;23005:67;23069:2;23064:3;23005:67;:::i;:::-;22998:74;;23081:93;23170:3;23081:93;:::i;:::-;23199:2;23194:3;23190:12;23183:19;;22842:366;;;:::o;23214:419::-;23380:4;23418:2;23407:9;23403:18;23395:26;;23467:9;23461:4;23457:20;23453:1;23442:9;23438:17;23431:47;23495:131;23621:4;23495:131;:::i;:::-;23487:139;;23214:419;;;:::o;23639:194::-;23679:4;23699:20;23717:1;23699:20;:::i;:::-;23694:25;;23733:20;23751:1;23733:20;:::i;:::-;23728:25;;23777:1;23774;23770:9;23762:17;;23801:1;23795:4;23792:11;23789:37;;;23806:18;;:::i;:::-;23789:37;23639:194;;;;:::o;23839:181::-;23979:33;23975:1;23967:6;23963:14;23956:57;23839:181;:::o;24026:366::-;24168:3;24189:67;24253:2;24248:3;24189:67;:::i;:::-;24182:74;;24265:93;24354:3;24265:93;:::i;:::-;24383:2;24378:3;24374:12;24367:19;;24026:366;;;:::o;24398:419::-;24564:4;24602:2;24591:9;24587:18;24579:26;;24651:9;24645:4;24641:20;24637:1;24626:9;24622:17;24615:47;24679:131;24805:4;24679:131;:::i;:::-;24671:139;;24398:419;;;:::o;24823:172::-;24963:24;24959:1;24951:6;24947:14;24940:48;24823:172;:::o;25001:366::-;25143:3;25164:67;25228:2;25223:3;25164:67;:::i;:::-;25157:74;;25240:93;25329:3;25240:93;:::i;:::-;25358:2;25353:3;25349:12;25342:19;;25001:366;;;:::o;25373:419::-;25539:4;25577:2;25566:9;25562:18;25554:26;;25626:9;25620:4;25616:20;25612:1;25601:9;25597:17;25590:47;25654:131;25780:4;25654:131;:::i;:::-;25646:139;;25373:419;;;:::o;25798:223::-;25938:34;25934:1;25926:6;25922:14;25915:58;26007:6;26002:2;25994:6;25990:15;25983:31;25798:223;:::o;26027:366::-;26169:3;26190:67;26254:2;26249:3;26190:67;:::i;:::-;26183:74;;26266:93;26355:3;26266:93;:::i;:::-;26384:2;26379:3;26375:12;26368:19;;26027:366;;;:::o;26399:419::-;26565:4;26603:2;26592:9;26588:18;26580:26;;26652:9;26646:4;26642:20;26638:1;26627:9;26623:17;26616:47;26680:131;26806:4;26680:131;:::i;:::-;26672:139;;26399:419;;;:::o;26824:224::-;26864:3;26883:20;26901:1;26883:20;:::i;:::-;26878:25;;26917:20;26935:1;26917:20;:::i;:::-;26912:25;;26960:1;26957;26953:9;26946:16;;26983:34;26978:3;26975:43;26972:69;;;27021:18;;:::i;:::-;26972:69;26824:224;;;;:::o;27054:233::-;27093:3;27116:24;27134:5;27116:24;:::i;:::-;27107:33;;27162:66;27155:5;27152:77;27149:103;;27232:18;;:::i;:::-;27149:103;27279:1;27272:5;27268:13;27261:20;;27054:233;;;:::o;27293:148::-;27395:11;27432:3;27417:18;;27293:148;;;;:::o;27447:390::-;27553:3;27581:39;27614:5;27581:39;:::i;:::-;27636:89;27718:6;27713:3;27636:89;:::i;:::-;27629:96;;27734:65;27792:6;27787:3;27780:4;27773:5;27769:16;27734:65;:::i;:::-;27824:6;27819:3;27815:16;27808:23;;27557:280;27447:390;;;;:::o;27843:435::-;28023:3;28045:95;28136:3;28127:6;28045:95;:::i;:::-;28038:102;;28157:95;28248:3;28239:6;28157:95;:::i;:::-;28150:102;;28269:3;28262:10;;27843:435;;;;;:::o;28284:410::-;28324:7;28347:20;28365:1;28347:20;:::i;:::-;28342:25;;28381:20;28399:1;28381:20;:::i;:::-;28376:25;;28436:1;28433;28429:9;28458:30;28476:11;28458:30;:::i;:::-;28447:41;;28637:1;28628:7;28624:15;28621:1;28618:22;28598:1;28591:9;28571:83;28548:139;;28667:18;;:::i;:::-;28548:139;28332:362;28284:410;;;;:::o;28700:180::-;28748:77;28745:1;28738:88;28845:4;28842:1;28835:15;28869:4;28866:1;28859:15;28886:185;28926:1;28943:20;28961:1;28943:20;:::i;:::-;28938:25;;28977:20;28995:1;28977:20;:::i;:::-;28972:25;;29016:1;29006:35;;29021:18;;:::i;:::-;29006:35;29063:1;29060;29056:9;29051:14;;28886:185;;;;:::o;29077:224::-;29217:34;29213:1;29205:6;29201:14;29194:58;29286:7;29281:2;29273:6;29269:15;29262:32;29077:224;:::o;29307:366::-;29449:3;29470:67;29534:2;29529:3;29470:67;:::i;:::-;29463:74;;29546:93;29635:3;29546:93;:::i;:::-;29664:2;29659:3;29655:12;29648:19;;29307:366;;;:::o;29679:419::-;29845:4;29883:2;29872:9;29868:18;29860:26;;29932:9;29926:4;29922:20;29918:1;29907:9;29903:17;29896:47;29960:131;30086:4;29960:131;:::i;:::-;29952:139;;29679:419;;;:::o;30104:223::-;30244:34;30240:1;30232:6;30228:14;30221:58;30313:6;30308:2;30300:6;30296:15;30289:31;30104:223;:::o;30333:366::-;30475:3;30496:67;30560:2;30555:3;30496:67;:::i;:::-;30489:74;;30572:93;30661:3;30572:93;:::i;:::-;30690:2;30685:3;30681:12;30674:19;;30333:366;;;:::o;30705:419::-;30871:4;30909:2;30898:9;30894:18;30886:26;;30958:9;30952:4;30948:20;30944:1;30933:9;30929:17;30922:47;30986:131;31112:4;30986:131;:::i;:::-;30978:139;;30705:419;;;:::o;31130:332::-;31251:4;31289:2;31278:9;31274:18;31266:26;;31302:71;31370:1;31359:9;31355:17;31346:6;31302:71;:::i;:::-;31383:72;31451:2;31440:9;31436:18;31427:6;31383:72;:::i;:::-;31130:332;;;;;:::o;31468:175::-;31608:27;31604:1;31596:6;31592:14;31585:51;31468:175;:::o;31649:366::-;31791:3;31812:67;31876:2;31871:3;31812:67;:::i;:::-;31805:74;;31888:93;31977:3;31888:93;:::i;:::-;32006:2;32001:3;31997:12;31990:19;;31649:366;;;:::o;32021:419::-;32187:4;32225:2;32214:9;32210:18;32202:26;;32274:9;32268:4;32264:20;32260:1;32249:9;32245:17;32238:47;32302:131;32428:4;32302:131;:::i;:::-;32294:139;;32021:419;;;:::o;32446:237::-;32586:34;32582:1;32574:6;32570:14;32563:58;32655:20;32650:2;32642:6;32638:15;32631:45;32446:237;:::o;32689:366::-;32831:3;32852:67;32916:2;32911:3;32852:67;:::i;:::-;32845:74;;32928:93;33017:3;32928:93;:::i;:::-;33046:2;33041:3;33037:12;33030:19;;32689:366;;;:::o;33061:419::-;33227:4;33265:2;33254:9;33250:18;33242:26;;33314:9;33308:4;33304:20;33300:1;33289:9;33285:17;33278:47;33342:131;33468:4;33342:131;:::i;:::-;33334:139;;33061:419;;;:::o;33486:182::-;33626:34;33622:1;33614:6;33610:14;33603:58;33486:182;:::o;33674:366::-;33816:3;33837:67;33901:2;33896:3;33837:67;:::i;:::-;33830:74;;33913:93;34002:3;33913:93;:::i;:::-;34031:2;34026:3;34022:12;34015:19;;33674:366;;;:::o;34046:419::-;34212:4;34250:2;34239:9;34235:18;34227:26;;34299:9;34293:4;34289:20;34285:1;34274:9;34270:17;34263:47;34327:131;34453:4;34327:131;:::i;:::-;34319:139;;34046:419;;;:::o;34471:178::-;34611:30;34607:1;34599:6;34595:14;34588:54;34471:178;:::o;34655:366::-;34797:3;34818:67;34882:2;34877:3;34818:67;:::i;:::-;34811:74;;34894:93;34983:3;34894:93;:::i;:::-;35012:2;35007:3;35003:12;34996:19;;34655:366;;;:::o;35027:419::-;35193:4;35231:2;35220:9;35216:18;35208:26;;35280:9;35274:4;35270:20;35266:1;35255:9;35251:17;35244:47;35308:131;35434:4;35308:131;:::i;:::-;35300:139;;35027:419;;;:::o;35452:442::-;35601:4;35639:2;35628:9;35624:18;35616:26;;35652:71;35720:1;35709:9;35705:17;35696:6;35652:71;:::i;:::-;35733:72;35801:2;35790:9;35786:18;35777:6;35733:72;:::i;:::-;35815;35883:2;35872:9;35868:18;35859:6;35815:72;:::i;:::-;35452:442;;;;;;:::o;35900:137::-;35954:5;35985:6;35979:13;35970:22;;36001:30;36025:5;36001:30;:::i;:::-;35900:137;;;;:::o;36043:345::-;36110:6;36159:2;36147:9;36138:7;36134:23;36130:32;36127:119;;;36165:79;;:::i;:::-;36127:119;36285:1;36310:61;36363:7;36354:6;36343:9;36339:22;36310:61;:::i;:::-;36300:71;;36256:125;36043:345;;;;:::o;36394:229::-;36534:34;36530:1;36522:6;36518:14;36511:58;36603:12;36598:2;36590:6;36586:15;36579:37;36394:229;:::o;36629:366::-;36771:3;36792:67;36856:2;36851:3;36792:67;:::i;:::-;36785:74;;36868:93;36957:3;36868:93;:::i;:::-;36986:2;36981:3;36977:12;36970:19;;36629:366;;;:::o;37001:419::-;37167:4;37205:2;37194:9;37190:18;37182:26;;37254:9;37248:4;37244:20;37240:1;37229:9;37225:17;37218:47;37282:131;37408:4;37282:131;:::i;:::-;37274:139;;37001:419;;;:::o;37426:98::-;37477:6;37511:5;37505:12;37495:22;;37426:98;;;:::o;37530:168::-;37613:11;37647:6;37642:3;37635:19;37687:4;37682:3;37678:14;37663:29;;37530:168;;;;:::o;37704:373::-;37790:3;37818:38;37850:5;37818:38;:::i;:::-;37872:70;37935:6;37930:3;37872:70;:::i;:::-;37865:77;;37951:65;38009:6;38004:3;37997:4;37990:5;37986:16;37951:65;:::i;:::-;38041:29;38063:6;38041:29;:::i;:::-;38036:3;38032:39;38025:46;;37794:283;37704:373;;;;:::o;38083:640::-;38278:4;38316:3;38305:9;38301:19;38293:27;;38330:71;38398:1;38387:9;38383:17;38374:6;38330:71;:::i;:::-;38411:72;38479:2;38468:9;38464:18;38455:6;38411:72;:::i;:::-;38493;38561:2;38550:9;38546:18;38537:6;38493:72;:::i;:::-;38612:9;38606:4;38602:20;38597:2;38586:9;38582:18;38575:48;38640:76;38711:4;38702:6;38640:76;:::i;:::-;38632:84;;38083:640;;;;;;;:::o;38729:141::-;38785:5;38816:6;38810:13;38801:22;;38832:32;38858:5;38832:32;:::i;:::-;38729:141;;;;:::o;38876:349::-;38945:6;38994:2;38982:9;38973:7;38969:23;38965:32;38962:119;;;39000:79;;:::i;:::-;38962:119;39120:1;39145:63;39200:7;39191:6;39180:9;39176:22;39145:63;:::i;:::-;39135:73;;39091:127;38876:349;;;;:::o;39231:225::-;39371:34;39367:1;39359:6;39355:14;39348:58;39440:8;39435:2;39427:6;39423:15;39416:33;39231:225;:::o;39462:366::-;39604:3;39625:67;39689:2;39684:3;39625:67;:::i;:::-;39618:74;;39701:93;39790:3;39701:93;:::i;:::-;39819:2;39814:3;39810:12;39803:19;;39462:366;;;:::o;39834:419::-;40000:4;40038:2;40027:9;40023:18;40015:26;;40087:9;40081:4;40077:20;40073:1;40062:9;40058:17;40051:47;40115:131;40241:4;40115:131;:::i;:::-;40107:139;;39834:419;;;:::o;40259:147::-;40360:11;40397:3;40382:18;;40259:147;;;;:::o;40412:386::-;40516:3;40544:38;40576:5;40544:38;:::i;:::-;40598:88;40679:6;40674:3;40598:88;:::i;:::-;40591:95;;40695:65;40753:6;40748:3;40741:4;40734:5;40730:16;40695:65;:::i;:::-;40785:6;40780:3;40776:16;40769:23;;40520:278;40412:386;;;;:::o;40804:271::-;40934:3;40956:93;41045:3;41036:6;40956:93;:::i;:::-;40949:100;;41066:3;41059:10;;40804:271;;;;:::o;41081:179::-;41221:31;41217:1;41209:6;41205:14;41198:55;41081:179;:::o;41266:366::-;41408:3;41429:67;41493:2;41488:3;41429:67;:::i;:::-;41422:74;;41505:93;41594:3;41505:93;:::i;:::-;41623:2;41618:3;41614:12;41607:19;;41266:366;;;:::o;41638:419::-;41804:4;41842:2;41831:9;41827:18;41819:26;;41891:9;41885:4;41881:20;41877:1;41866:9;41862:17;41855:47;41919:131;42045:4;41919:131;:::i;:::-;41911:139;;41638:419;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "create(address,uint256,uint128,uint128,uint128,address)": "c196f42f", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestDetails(uint256)": "03101bfd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"duration\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"cliff\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"vestDetails\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"payoutToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"cliff\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"constructor\":{\"details\":\"See {IERC5725}.\"},\"create(address,uint256,uint128,uint128,uint128,address)\":{\"details\":\"Token amount should be approved to be transferred by this contract before executing create\",\"params\":{\"amount\":\"The total assets to be locked over time\",\"cliff\":\"The cliff duration in seconds\",\"duration\":\"The vesting duration in seconds\",\"startTime\":\"When the vesting starts in epoch timestamp\",\"to\":\"The recipient of the NFT\",\"token\":\"The ERC20 token to vest over time\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_tokenIdTracker\":{\"details\":\"tracker of current NFT id\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"create(address,uint256,uint128,uint128,uint128,address)\":{\"notice\":\"Creates a new vesting NFT and mints it\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/reference/LinearVestingNFT.sol\":\"LinearVestingNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]},\"contracts/reference/LinearVestingNFT.sol\":{\"keccak256\":\"0xcc0a9139c0438c3a336722311b5261968a1192270daff62edcebc7c99a9aa53c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://62bedbe1d5c8c3846aa476b65d6efb6097c53ff8371496def467e234dd656e86\",\"dweb:/ipfs/QmXqZPmLUntbKoxiYvxhjGpwzAa6ECPWaYr3SsRr6a6CMa\"]}},\"version\":1}" + } + }, + "contracts/reference/VestingNFT.sol": { + "VestingNFT": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "releaseTimestamp", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4441": { + "entryPoint": null, + "id": 4441, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 380, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 455, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 506, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 251, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 103, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 282, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1071, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 336, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 697, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1164, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 946, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 123, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 128, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 118, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 113, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 133, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 787, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1004, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 800, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 956, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 999, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162003fdc38038062003fdc8339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613a1b80620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3FDC CODESIZE SUB DUP1 PUSH3 0x3FDC DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1FA JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP POP POP POP POP PUSH3 0x5B1 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 PUSH3 0xD0 DUP3 PUSH3 0x85 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xF2 JUMPI PUSH3 0xF1 PUSH3 0x96 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x107 PUSH3 0x67 JUMP JUMPDEST SWAP1 POP PUSH3 0x115 DUP3 DUP3 PUSH3 0xC5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x138 JUMPI PUSH3 0x137 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x143 DUP3 PUSH3 0x85 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x170 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x153 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x193 PUSH3 0x18D DUP5 PUSH3 0x11A JUMP JUMPDEST PUSH3 0xFB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1B2 JUMPI PUSH3 0x1B1 PUSH3 0x80 JUMP JUMPDEST JUMPDEST PUSH3 0x1BF DUP5 DUP3 DUP6 PUSH3 0x150 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DF JUMPI PUSH3 0x1DE PUSH3 0x7B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1F1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x17C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x214 JUMPI PUSH3 0x213 PUSH3 0x71 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x235 JUMPI PUSH3 0x234 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x243 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x267 JUMPI PUSH3 0x266 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x275 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2D2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E8 JUMPI PUSH3 0x2E7 PUSH3 0x28A 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 PUSH3 0x352 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x313 JUMP JUMPDEST PUSH3 0x35E DUP7 DUP4 PUSH3 0x313 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 PUSH3 0x3AB PUSH3 0x3A5 PUSH3 0x39F DUP5 PUSH3 0x376 JUMP JUMPDEST PUSH3 0x380 JUMP JUMPDEST PUSH3 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C7 DUP4 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x3DF PUSH3 0x3D6 DUP3 PUSH3 0x3B2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x320 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F6 PUSH3 0x3E7 JUMP JUMPDEST PUSH3 0x403 DUP2 DUP5 DUP5 PUSH3 0x3BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x42B JUMPI PUSH3 0x41F PUSH1 0x0 DUP3 PUSH3 0x3EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x409 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x47A JUMPI PUSH3 0x444 DUP2 PUSH3 0x2EE JUMP JUMPDEST PUSH3 0x44F DUP5 PUSH3 0x303 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x477 PUSH3 0x46E DUP6 PUSH3 0x303 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x408 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 PUSH3 0x49F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47F JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4BA DUP4 DUP4 PUSH3 0x48C JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D5 DUP3 PUSH3 0x27F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4F1 JUMPI PUSH3 0x4F0 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x4FD DUP3 SLOAD PUSH3 0x2B9 JUMP JUMPDEST PUSH3 0x50A DUP3 DUP3 DUP6 PUSH3 0x42F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x542 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x52D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x539 DUP6 DUP3 PUSH3 0x4AC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x552 DUP7 PUSH3 0x2EE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x57C 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 PUSH3 0x555 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x59C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x598 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x48C 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 PUSH2 0x3A1B DUP1 PUSH3 0x5C1 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 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x746B5D61 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x746B5D61 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x81D0526D EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3CE JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D4 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x258E JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x570 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x270D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x286C JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xE34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x377 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x395 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B8 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E3 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x418 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x2A6D JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x2BE2 JUMP JUMPDEST PUSH2 0x1088 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x450 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x480 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x569 JUMPI POP PUSH2 0x568 DUP3 PUSH2 0x126F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x607 SWAP1 PUSH2 0x2D14 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 0x633 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x680 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x655 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x680 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 0x663 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DB DUP3 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x74B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x742 SWAP1 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x76A PUSH2 0x139C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x799 JUMPI POP PUSH2 0x798 DUP2 PUSH2 0x793 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST JUMPDEST PUSH2 0x7D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7CF SWAP1 PUSH2 0x2E49 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7E2 DUP4 DUP4 PUSH2 0x13A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x7F8 PUSH2 0x7F2 PUSH2 0x139C JUMP JUMPDEST DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x837 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82E SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x842 DUP4 DUP4 DUP4 PUSH2 0x14F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x851 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x890 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x887 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8B0 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x906 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8FD SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x956 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94D SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x99D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C8 SWAP2 SWAP1 PUSH2 0x306E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA02 CALLER DUP3 PUSH2 0x9DD DUP7 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x182C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA22 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1088 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA34 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xA73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA6A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA7C DUP5 PUSH2 0x18B2 JUMP JUMPDEST PUSH2 0xA85 DUP6 PUSH2 0x1900 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA9B DUP4 PUSH2 0x194E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7C SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC32 SWAP1 PUSH2 0x31EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xC8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC86 SWAP1 PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xDE9 SWAP1 PUSH2 0x3278 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xDF8 DUP6 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xE2D CALLER ADDRESS DUP7 PUSH2 0xE07 DUP6 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1BA8 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xE40 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE76 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE88 DUP4 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0xE91 DUP5 PUSH2 0x1C31 JUMP JUMPDEST PUSH2 0xE9B SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEAF DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE5 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF16 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xF55 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4C SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF5E DUP4 PUSH2 0x1C51 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xF75 SWAP1 PUSH2 0x2D14 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 0xFA1 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFEE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFC3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFEE 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 0xFD1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1004 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1043 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1060 DUP5 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1084 PUSH2 0x107D PUSH2 0x139C JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1C91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1099 PUSH2 0x1093 PUSH2 0x139C JUMP JUMPDEST DUP4 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x10D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CF SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10E4 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10F5 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FF PUSH2 0x1E59 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x111F JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x114A JUMP JUMPDEST DUP1 PUSH2 0x1129 DUP5 PUSH2 0x1E70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x113A SWAP3 SWAP2 SWAP1 PUSH2 0x3330 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x115E DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x119D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1194 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11A6 DUP5 PUSH2 0x1900 JUMP JUMPDEST DUP4 LT PUSH2 0x11BC JUMPI PUSH2 0x11B5 DUP5 PUSH2 0x1C31 JUMP JUMPDEST SWAP2 POP PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D4 DUP3 TIMESTAMP PUSH2 0x1152 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x133A JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x134A JUMPI POP PUSH2 0x1349 DUP3 PUSH2 0x1F3E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x135A DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1390 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1417 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1469 DUP4 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x14AB JUMPI POP PUSH2 0x14AA DUP2 DUP6 PUSH2 0x11DB JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x14E9 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14D1 DUP5 PUSH2 0x68A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1512 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CE SWAP1 PUSH2 0x3458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1604 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1651 SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x17E6 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180D DUP4 PUSH2 0x194E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18AD DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x184B SWAP3 SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F1 SWAP1 PUSH2 0x34ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A03 DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A51 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST PUSH2 0x1A5A DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A91 SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1BA4 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1C2B DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1BC9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP1 PUSH2 0x35FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1DF0 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1E08 DUP5 DUP5 DUP5 PUSH2 0x14F2 JUMP JUMPDEST PUSH2 0x1E14 DUP5 DUP5 DUP5 DUP5 PUSH2 0x207B JUMP JUMPDEST PUSH2 0x1E53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4A SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E7F DUP5 PUSH2 0x2202 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E9E JUMPI PUSH2 0x1E9D PUSH2 0x2AB7 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 0x1ED0 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 0x1F33 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EDE JUMPI JUMPDEST DUP2 SWAP4 POP POP 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2016 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2355 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2076 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x36F2 JUMP JUMPDEST PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x206C SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x209C DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x236D JUMP JUMPDEST ISZERO PUSH2 0x21F5 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x20C5 PUSH2 0x139C JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3806 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2123 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 0x2120 SWAP2 SWAP1 PUSH2 0x3867 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x21A5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2153 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 0x2158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x219D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2194 SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x21FA JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2260 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2256 JUMPI PUSH2 0x2255 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x229D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2293 JUMPI PUSH2 0x2292 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22CC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x22F5 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x22EB JUMPI PUSH2 0x22EA PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x231A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2310 JUMPI PUSH2 0x230F PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x233D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x2333 JUMPI PUSH2 0x2332 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x234C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2364 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2390 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x23D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CC SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x23FE SWAP2 SWAP1 PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243B 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 0x2440 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2451 DUP8 DUP4 DUP4 DUP8 PUSH2 0x245D JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x24BF JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x24B7 JUMPI PUSH2 0x2477 DUP6 PUSH2 0x236D JUMP JUMPDEST PUSH2 0x24B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24AD SWAP1 PUSH2 0x39C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x24C9 DUP4 DUP4 PUSH2 0x24D2 JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x24E5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2519 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x256B DUP2 PUSH2 0x2536 JUMP JUMPDEST DUP2 EQ PUSH2 0x2576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2588 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25A4 JUMPI PUSH2 0x25A3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP5 DUP3 DUP6 ADD PUSH2 0x2579 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25D0 DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2604 DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP2 EQ PUSH2 0x260F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2621 DUP2 PUSH2 0x25FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x263D JUMPI PUSH2 0x263C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x264B DUP5 DUP3 DUP6 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2699 PUSH2 0x2694 PUSH2 0x268F DUP5 PUSH2 0x2654 JUMP JUMPDEST PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AB DUP3 PUSH2 0x267E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BD DUP3 PUSH2 0x26A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x26CD DUP2 PUSH2 0x26B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26DC DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2707 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2722 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x26C4 JUMP JUMPDEST PUSH2 0x272F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x273C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26FE JUMP JUMPDEST PUSH2 0x2749 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x26FE JUMP JUMPDEST SWAP6 SWAP5 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x278C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2771 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 0x27B4 DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x27BE DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST SWAP4 POP PUSH2 0x27CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x27D7 DUP2 PUSH2 0x2798 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 0x27FC DUP2 DUP5 PUSH2 0x27A9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F DUP3 PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x281F DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x283A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2816 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2849 DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP2 EQ PUSH2 0x2854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2866 DUP2 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2882 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2891 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A2 DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28E4 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x28F5 DUP7 DUP3 DUP8 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2914 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x2921 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x293E JUMPI PUSH2 0x293D PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294C DUP5 DUP3 DUP6 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x296A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x2984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2996 DUP2 PUSH2 0x2970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29A7 DUP3 PUSH2 0x2804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29B7 DUP2 PUSH2 0x299C JUMP JUMPDEST DUP2 EQ PUSH2 0x29C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x29D4 DUP2 PUSH2 0x29AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29F4 JUMPI PUSH2 0x29F3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A02 DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A13 DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2A24 DUP8 DUP3 DUP9 ADD PUSH2 0x2987 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2A35 DUP8 DUP3 DUP9 ADD PUSH2 0x29C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2A4A DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A67 DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A84 JUMPI PUSH2 0x2A83 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A92 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2A58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2AEF DUP3 PUSH2 0x2798 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2B0E JUMPI PUSH2 0x2B0D PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B21 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B2D DUP3 DUP3 PUSH2 0x2AE6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST PUSH2 0x2B56 DUP3 PUSH2 0x2798 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 0x2B85 PUSH2 0x2B80 DUP5 PUSH2 0x2B32 JUMP JUMPDEST PUSH2 0x2B17 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2BA1 JUMPI PUSH2 0x2BA0 PUSH2 0x2AB2 JUMP JUMPDEST JUMPDEST PUSH2 0x2BAC DUP5 DUP3 DUP6 PUSH2 0x2B63 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BC9 JUMPI PUSH2 0x2BC8 PUSH2 0x2AAD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BD9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2B72 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BFC JUMPI PUSH2 0x2BFB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C0A DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C1B DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2C2C DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C4D JUMPI PUSH2 0x2C4C PUSH2 0x2531 JUMP JUMPDEST JUMPDEST PUSH2 0x2C59 DUP8 DUP3 DUP9 ADD PUSH2 0x2BB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7C JUMPI PUSH2 0x2C7B PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C8A DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2C9B DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2CBC JUMPI PUSH2 0x2CBB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CCA DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2CDB DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2D2C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D3F JUMPI PUSH2 0x2D3E PUSH2 0x2CE5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA1 PUSH1 0x21 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2DAC DUP3 PUSH2 0x2D45 JUMP JUMPDEST PUSH1 0x40 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 0x2DD0 DUP2 PUSH2 0x2D94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E33 PUSH1 0x3D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E3E DUP3 PUSH2 0x2DD7 JUMP JUMPDEST PUSH1 0x40 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 0x2E62 DUP2 PUSH2 0x2E26 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EC5 PUSH1 0x2D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2ED0 DUP3 PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x40 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 0x2EF4 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F31 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2F3C DUP3 PUSH2 0x2EFB 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 0x2F60 DUP2 PUSH2 0x2F24 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x10 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 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 0x2FCC DUP2 PUSH2 0x2F90 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3009 PUSH1 0x1A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3014 DUP3 PUSH2 0x2FD3 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 0x3038 DUP2 PUSH2 0x2FFC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3079 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3084 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x309C JUMPI PUSH2 0x309B PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30D8 PUSH1 0x18 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x30E3 DUP3 PUSH2 0x30A2 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 0x3107 DUP2 PUSH2 0x30CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316A PUSH1 0x29 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3175 DUP3 PUSH2 0x310E JUMP JUMPDEST PUSH1 0x40 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 0x3199 DUP2 PUSH2 0x315D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31D6 PUSH1 0x16 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x31E1 DUP3 PUSH2 0x31A0 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 0x3205 DUP2 PUSH2 0x31C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x72656C65617365206D75737420626520696E2066757475726500000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3242 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x324D DUP3 PUSH2 0x320C 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 0x3271 DUP2 PUSH2 0x3235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3283 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x32B5 JUMPI PUSH2 0x32B4 PUSH2 0x303F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x32D6 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x32EE JUMPI PUSH2 0x32ED PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x330A DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x3314 DUP2 DUP6 PUSH2 0x32F4 JUMP JUMPDEST SWAP4 POP PUSH2 0x3324 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x333C DUP3 DUP6 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP PUSH2 0x3348 DUP3 DUP5 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33B0 PUSH1 0x25 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x33BB DUP3 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x40 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 0x33DF DUP2 PUSH2 0x33A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3442 PUSH1 0x24 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x344D DUP3 PUSH2 0x33E6 JUMP JUMPDEST PUSH1 0x40 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 0x3471 DUP2 PUSH2 0x3435 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x348D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x349A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D7 PUSH1 0x20 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x34E2 DUP3 PUSH2 0x34A1 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 0x3506 DUP2 PUSH2 0x34CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3543 PUSH1 0x1C DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x354E DUP3 PUSH2 0x350D 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 0x3572 DUP2 PUSH2 0x3536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x358E PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x359B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x35A8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E6 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x35F1 DUP3 PUSH2 0x35B0 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 0x3615 DUP2 PUSH2 0x35D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3678 PUSH1 0x32 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3683 DUP3 PUSH2 0x361C JUMP JUMPDEST PUSH1 0x40 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 0x36A7 DUP2 PUSH2 0x366B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x36EC DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3708 JUMPI PUSH2 0x3707 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3716 DUP5 DUP3 DUP6 ADD PUSH2 0x36DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x2A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3786 DUP3 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 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 0x37AA DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x37D8 DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x37E2 DUP2 DUP6 PUSH2 0x37BC JUMP JUMPDEST SWAP4 POP PUSH2 0x37F2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x37FB DUP2 PUSH2 0x2798 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x381B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3828 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3835 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3847 DUP2 DUP5 PUSH2 0x37CD JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3861 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x388B DUP5 DUP3 DUP6 ADD PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38F0 PUSH1 0x26 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x38FB DUP3 PUSH2 0x3894 JUMP JUMPDEST PUSH1 0x40 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 0x391F DUP2 PUSH2 0x38E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393C DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x3946 DUP2 DUP6 PUSH2 0x3926 JUMP JUMPDEST SWAP4 POP PUSH2 0x3956 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396E DUP3 DUP5 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x1D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x39BA DUP3 PUSH2 0x3979 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 0x39DE DUP2 PUSH2 0x39A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xBC SWAP5 PUSH27 0x635537FDA1DB652C421F31AD5F762A8C920AB72E4F2409561F0ECA 0x2C PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:2868:21:-:0;;;694:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;755:4;761:6;1464:5:6;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;694:77:21;;88:2868;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;88:2868:21:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 8110, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 5028, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 7769, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 8104, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_callOptionalReturn_1118": { + "entryPoint": 8116, + "id": 1118, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 8315, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_endTime_4607": { + "entryPoint": 6400, + "id": 4607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 6123, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 5213, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1720": { + "entryPoint": 6539, + "id": 1720, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 5020, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 6478, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payoutToken_4562": { + "entryPoint": 7249, + "id": 4562, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payout_4577": { + "entryPoint": 7217, + "id": 4577, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 4945, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_revert_2536": { + "entryPoint": 9426, + "id": 2536, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 7677, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 7313, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_startTime_4592": { + "entryPoint": 6322, + "id": 4592, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_transfer_1872": { + "entryPoint": 5362, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1744, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 2837, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claim_3803": { + "entryPoint": 2119, + "id": 3803, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@claimablePayout_3876": { + "entryPoint": 4088, + "id": 3876, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claimedPayout_3894": { + "entryPoint": 3747, + "id": 3894, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@create_4515": { + "entryPoint": 3020, + "id": 4515, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@functionCallWithValue_2361": { + "entryPoint": 9104, + "id": 2361, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_2297": { + "entryPoint": 9045, + "id": 2297, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1674, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 4571, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 9069, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 8706, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 1528, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 2703, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@payoutToken_3936": { + "entryPoint": 3850, + "id": 3936, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 2567, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 4232, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransferFrom_896": { + "entryPoint": 7080, + "id": 896, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_870": { + "entryPoint": 6188, + "id": 870, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 4210, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 4719, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 7998, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3960": { + "entryPoint": 1270, + "id": 3960, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 3942, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 7792, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 4330, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 2023, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_2492": { + "entryPoint": 9309, + "id": 2492, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vestDetails_4425": { + "entryPoint": 1392, + "id": 4425, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@vestedPayoutAtTime_4544": { + "entryPoint": 4434, + "id": 4544, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@vestedPayout_3820": { + "entryPoint": 4552, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPayout_3854": { + "entryPoint": 3636, + "id": 3854, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPeriod_3918": { + "entryPoint": 2599, + "id": 3918, + "parameterSlots": 1, + "returnSlots": 2 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 11122, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 10327, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 10840, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 14045, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 9593, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 14418, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 11188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IERC20_$777": { + "entryPoint": 10693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint128": { + "entryPoint": 10631, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 9746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 10536, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11429, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 10412, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 11234, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 10861, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 10348, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777": { + "entryPoint": 10714, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 14066, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 9614, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 14439, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 11365, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 10262, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 9671, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 14285, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 14641, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack": { + "entryPoint": 9924, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10153, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13055, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12853, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13931, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13219, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13622, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12068, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13785, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14563, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12284, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12745, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12491, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11668, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12176, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11814, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14754, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14190, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint128_to_t_uint128_fromStack": { + "entryPoint": 9982, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9939, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 14690, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 13104, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 10277, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 13689, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 14342, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 13432, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 9686, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed": { + "entryPoint": 9997, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11995, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12888, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13966, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13254, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13657, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12103, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13400, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13820, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14598, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12319, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12780, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13549, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11703, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12211, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11849, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14789, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14225, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 10581, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 10495, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 11031, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 9506, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 11058, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 14257, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 10066, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 14268, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 14630, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 10077, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13044, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12398, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 12992, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 10244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 9659, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 9526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IERC20_$777": { + "entryPoint": 10652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint128": { + "entryPoint": 9954, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 9812, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 9713, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IERC20_$777_to_t_address": { + "entryPoint": 9906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 9888, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 9854, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 11107, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 10094, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 11540, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 10982, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 9844, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 12920, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 12351, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13998, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11493, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 10935, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 10925, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 10930, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 9521, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 9516, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 10136, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 11881, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860": { + "entryPoint": 12812, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 13852, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 13140, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57": { + "entryPoint": 13581, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a": { + "entryPoint": 12027, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 13286, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 13744, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 14484, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 12558, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03": { + "entryPoint": 12243, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c": { + "entryPoint": 12704, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6": { + "entryPoint": 13473, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 12450, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 11589, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721": { + "entryPoint": 12135, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 11735, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 14713, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 14111, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 10304, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 10817, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 9570, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IERC20_$777": { + "entryPoint": 10670, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint128": { + "entryPoint": 10608, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 9723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:39788:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1584:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:22", + "type": "" + } + ], + "src": "1518:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1701:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1710:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1713:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1703:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1703:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1703:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1667:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1692:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1674:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1674:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1664:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1664:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1657:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1657:43:22" + }, + "nodeType": "YulIf", + "src": "1654:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1637:5:22", + "type": "" + } + ], + "src": "1601:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1781:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1791:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1813:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1800:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "1800:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1791:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1856:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1829:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "1829:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1829:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1759:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1767:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1775:5:22", + "type": "" + } + ], + "src": "1729:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1940:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1986:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1988:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "1988:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1988:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1961:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1970:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1957:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1982:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:32:22" + }, + "nodeType": "YulIf", + "src": "1950:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2079:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2094:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2108:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2098:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2123:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2158:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2169:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2154:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2154:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2178:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2133:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2133:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2123:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1910:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1921:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1933:6:22", + "type": "" + } + ], + "src": "1874:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2254:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2264:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2279:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2286:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2275:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2264:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2236:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2246:7:22", + "type": "" + } + ], + "src": "2209:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2373:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2383:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2390:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2383:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2359:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2369:3:22", + "type": "" + } + ], + "src": "2341:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2467:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2477:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2535:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2517:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2517:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "2508:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "2508:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2477:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2447:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2457:9:22", + "type": "" + } + ], + "src": "2407:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2615:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2625:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2669:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "2638:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2638:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2625:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2595:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2605:9:22", + "type": "" + } + ], + "src": "2555:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2761:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2771:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2815:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "2784:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2784:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2771:9:22" + } + ] + } + ] + }, + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2741:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2751:9:22", + "type": "" + } + ], + "src": "2687:140:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2912:80:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2929:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2979:5:22" + } + ], + "functionName": { + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulIdentifier", + "src": "2934:44:22" + }, + "nodeType": "YulFunctionCall", + "src": "2934:51:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2922:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2922:64:22" + } + ] + }, + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2900:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2907:3:22", + "type": "" + } + ], + "src": "2833:159:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3063:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3080:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3103:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3085:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3085:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3073:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3073:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3073:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3051:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3058:3:22", + "type": "" + } + ], + "src": "2998:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:73:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3177:57:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3192:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3199:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3188:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3188:46:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3177:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3149:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3159:7:22", + "type": "" + } + ], + "src": "3122:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3311:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3328:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3351:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "3333:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3333:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3321:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3321:37:22" + } + ] + }, + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3299:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3306:3:22", + "type": "" + } + ], + "src": "3246:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3566:385:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3576:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3588:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3599:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3584:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3584:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3576:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3671:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3684:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3695:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3680:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3680:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3613:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "3613:85:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3613:85:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3752:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3765:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3776:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3761:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3761:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3708:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3708:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3708:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3834:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3847:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3858:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3843:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3843:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3790:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3790:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3790:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3916:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3929:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3925:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3925:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3872:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3872:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3872:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3514:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3526:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3534:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3542:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3550:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3561:4:22", + "type": "" + } + ], + "src": "3370:581:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4016:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4027:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4043:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4037:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4037:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4027:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3999:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4009:6:22", + "type": "" + } + ], + "src": "3957:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4158:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4175:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4180:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4168:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4168:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4168:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "4196:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4215:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4220:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4211:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4211:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4196:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4130:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4135:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4146:11:22", + "type": "" + } + ], + "src": "4062:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4299:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4309:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4318:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4313:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4378:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4403:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4408:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4399:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4422:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4427:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4418:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4418:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4412:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4412:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4392:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4392:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4392:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4339:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4342:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4336:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4336:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4350:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4352:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4361:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4364:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4357:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4357:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4352:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4332:3:22", + "statements": [] + }, + "src": "4328:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4461:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4466:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4457:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4457:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4475:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4450:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4450:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4450:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4281:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4286:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4291:6:22", + "type": "" + } + ], + "src": "4237:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4537:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4547:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4565:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4572:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4561:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4561:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4581:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4577:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4577:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4557:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4547:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4520:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4530:6:22", + "type": "" + } + ], + "src": "4489:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4689:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4699:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4746:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4713:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "4713:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4703:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4761:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4827:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4832:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4768:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "4768:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4761:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4887:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4894:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4883:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4883:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4901:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4906:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4848:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "4848:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4848:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "4922:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4933:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4960:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "4938:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "4938:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4929:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4929:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4922:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4670:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4677:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4685:3:22", + "type": "" + } + ], + "src": "4597:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5098:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5108:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5120:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5131:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5116:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5116:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5108:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5155:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5166:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5151:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5151:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5174:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5180:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5170:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5144:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5144:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5144:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "5200:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5272:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5281:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5208:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "5208:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5200:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5070:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5082:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5093:4:22", + "type": "" + } + ], + "src": "4980:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5344:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5354:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5383:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5365:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5365:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5354:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5326:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5336:7:22", + "type": "" + } + ], + "src": "5299:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5466:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5483:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5506:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5488:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5476:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5476:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5476:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5454:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5461:3:22", + "type": "" + } + ], + "src": "5401:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5623:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5633:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5645:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5656:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5641:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5641:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5633:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5713:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5726:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5737:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5722:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5722:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5669:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5669:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5669:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5595:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5607:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5618:4:22", + "type": "" + } + ], + "src": "5525:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5796:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5853:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5862:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5865:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5855:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5855:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5855:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5819:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5844:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5826:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5826:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5816:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5816:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5809:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5809:43:22" + }, + "nodeType": "YulIf", + "src": "5806:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5789:5:22", + "type": "" + } + ], + "src": "5753:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5933:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5943:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5965:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5952:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "5952:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5943:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6008:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "5981:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "5981:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5981:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5911:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5919:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5927:5:22", + "type": "" + } + ], + "src": "5881:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6155:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6157:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6157:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6157:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6130:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6139:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6126:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6151:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6122:32:22" + }, + "nodeType": "YulIf", + "src": "6119:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6248:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6263:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6277:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6267:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6292:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6327:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6338:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6323:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6323:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6347:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6302:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6302:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6292:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6375:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6390:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6404:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6394:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6420:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6455:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6466:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6451:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6451:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6475:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6430:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6430:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6420:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6071:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6082:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6094:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6102:6:22", + "type": "" + } + ], + "src": "6026:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6606:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6652:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6654:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6654:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6654:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6627:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6636:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6623:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6623:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6648:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6619:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6619:32:22" + }, + "nodeType": "YulIf", + "src": "6616:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6745:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6760:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6774:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6764:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6789:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6824:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6835:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6820:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6844:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6799:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6799:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6789:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6872:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6887:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6901:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6891:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6917:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6952:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6963:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6948:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6948:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6972:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6927:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6927:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6917:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7000:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7015:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7029:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7019:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7045:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7080:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7091:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7076:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7100:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7055:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7055:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7045:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6560:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6571:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6583:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6591:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6599:6:22", + "type": "" + } + ], + "src": "6506:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7257:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7267:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7279:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7290:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7275:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7267:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7347:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7360:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7371:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7356:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7356:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7303:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7303:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7303:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7428:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7441:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7452:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7437:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7437:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7384:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7384:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7221:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7233:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7241:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7252:4:22", + "type": "" + } + ], + "src": "7131:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7535:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7581:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7583:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "7583:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7583:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7556:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7565:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7552:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7552:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7577:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7548:32:22" + }, + "nodeType": "YulIf", + "src": "7545:119:22" + }, + { + "nodeType": "YulBlock", + "src": "7674:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7689:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7703:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7693:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7718:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7753:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7764:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7749:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7749:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7773:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7728:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7728:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7718:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7505:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7516:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7528:6:22", + "type": "" + } + ], + "src": "7469:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7902:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7912:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7924:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7935:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7920:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7920:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7912:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7992:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8005:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8016:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8001:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8001:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7948:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7948:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7948:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7874:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7886:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7897:4:22", + "type": "" + } + ], + "src": "7804:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8075:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8132:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8141:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8144:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8134:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8134:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8134:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8098:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8123:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "8105:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8105:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8095:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8095:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8088:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8088:43:22" + }, + "nodeType": "YulIf", + "src": "8085:63:22" + } + ] + }, + "name": "validator_revert_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8068:5:22", + "type": "" + } + ], + "src": "8032:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8212:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8222:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8244:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8231:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8231:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8222:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8287:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "8260:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "8260:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8260:33:22" + } + ] + }, + "name": "abi_decode_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8190:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8198:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8206:5:22", + "type": "" + } + ], + "src": "8160:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8364:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8374:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8403:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "8385:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8385:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "8374:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8346:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "8356:7:22", + "type": "" + } + ], + "src": "8305:110:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8478:93:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8549:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8558:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8561:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8551:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8551:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8551:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8501:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "8508:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "8508:38:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8498:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8498:49:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8491:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8491:57:22" + }, + "nodeType": "YulIf", + "src": "8488:77:22" + } + ] + }, + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8471:5:22", + "type": "" + } + ], + "src": "8421:150:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8643:101:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8653:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8675:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8662:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8662:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8653:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8732:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "8691:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "8691:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8691:47:22" + } + ] + }, + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8621:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8629:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8637:5:22", + "type": "" + } + ], + "src": "8577:167:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8881:662:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8928:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8930:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8930:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8930:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8902:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8911:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8898:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8923:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8894:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8894:33:22" + }, + "nodeType": "YulIf", + "src": "8891:120:22" + }, + { + "nodeType": "YulBlock", + "src": "9021:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9036:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9050:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9040:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9065:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9100:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9111:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9096:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9096:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9120:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9075:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9075:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9065:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9148:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9163:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9177:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9167:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9193:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9228:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9239:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9224:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9224:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9248:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9203:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9203:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9193:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9276:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9291:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9305:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9295:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9321:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9356:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9367:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9352:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9352:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9376:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "9331:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9331:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9321:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9404:132:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9419:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9433:2:22", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9423:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9449:77:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9498:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9509:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9494:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9494:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9518:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "9459:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "9459:67:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9449:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8827:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8838:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8850:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8858:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8866:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "8874:6:22", + "type": "" + } + ], + "src": "8750:793:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9589:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9643:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9652:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9655:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9645:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9645:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9645:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9612:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9634:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9619:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "9619:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9609:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9609:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9602:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9602:40:22" + }, + "nodeType": "YulIf", + "src": "9599:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9582:5:22", + "type": "" + } + ], + "src": "9549:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9720:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9730:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9752:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9739:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "9739:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9730:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9792:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9768:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "9768:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9768:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9698:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9706:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9714:5:22", + "type": "" + } + ], + "src": "9671:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9890:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9936:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9938:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9938:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9938:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9911:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9920:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9907:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9907:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9932:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9903:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9903:32:22" + }, + "nodeType": "YulIf", + "src": "9900:119:22" + }, + { + "nodeType": "YulBlock", + "src": "10029:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10044:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10058:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10048:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10073:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10108:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10119:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10104:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10104:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10128:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10083:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10083:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10073:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10156:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10171:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10185:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10175:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10201:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10233:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10244:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10229:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10229:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10253:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "10211:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10211:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10201:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9883:6:22", + "type": "" + } + ], + "src": "9810:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10373:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10390:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10393:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10383:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10383:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10383:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "10284:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10496:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10513:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10516:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10506:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10506:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10506:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "10407:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10558:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10575:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10578:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10568:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10568:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10568:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10672:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10675:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10665:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10665:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10665:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10696:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10699:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10689:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10689:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10689:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "10530:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10759:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10769:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10791:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10821:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "10799:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "10799:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10787:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "10773:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10938:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "10940:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "10940:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10940:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10881:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10893:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10878:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10878:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10917:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10929:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10914:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10914:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "10875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10875:62:22" + }, + "nodeType": "YulIf", + "src": "10872:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10976:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10980:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10969:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10969:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10745:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "10753:4:22", + "type": "" + } + ], + "src": "10716:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11044:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11054:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "11064:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "11064:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11054:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11113:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11121:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "11093:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "11093:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11093:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "11028:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11037:6:22", + "type": "" + } + ], + "src": "11003:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11204:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11309:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "11311:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "11311:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11311:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11281:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11289:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11278:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11278:30:22" + }, + "nodeType": "YulIf", + "src": "11275:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "11341:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11371:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "11349:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "11349:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11341:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11415:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11427:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11433:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11423:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11423:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11415:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11188:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "11199:4:22", + "type": "" + } + ], + "src": "11138:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11515:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "11538:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11543:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11548:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "11525:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "11525:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11525:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "11575:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11580:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11571:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11571:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11589:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11564:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11564:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11564:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11497:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "11502:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11507:6:22", + "type": "" + } + ], + "src": "11451:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11686:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11696:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11762:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11721:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "11721:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "11705:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "11705:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11696:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11786:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11793:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11779:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11779:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11779:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11809:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11824:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11831:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11820:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "11813:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11874:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "11876:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11876:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11876:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11855:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11860:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11851:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11851:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11869:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11848:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11848:25:22" + }, + "nodeType": "YulIf", + "src": "11845:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12003:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "12008:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12013:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "11966:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "11966:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11966:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11664:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11672:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "11680:5:22", + "type": "" + } + ], + "src": "11603:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12106:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12155:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "12157:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12157:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12157:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12134:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12142:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12130:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12149:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12126:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "12119:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12119:35:22" + }, + "nodeType": "YulIf", + "src": "12116:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12247:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12274:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12261:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12261:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12251:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12290:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12350:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12358:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12346:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12346:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12365:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12373:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12299:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "12299:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "12290:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12084:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12092:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "12100:5:22", + "type": "" + } + ], + "src": "12045:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12515:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12562:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12564:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12564:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12564:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12536:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12545:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12532:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12532:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12557:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12528:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12528:33:22" + }, + "nodeType": "YulIf", + "src": "12525:120:22" + }, + { + "nodeType": "YulBlock", + "src": "12655:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12670:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12684:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12674:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12699:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12734:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12745:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12730:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12754:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12709:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12709:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12699:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12782:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12797:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12811:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12801:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12827:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12862:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12873:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12858:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12858:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12882:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12837:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12837:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12827:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12910:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12925:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12939:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12929:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12955:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12990:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13001:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12986:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12986:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13010:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "12965:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12965:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12955:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13038:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13053:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13084:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13095:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13080:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13080:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "13067:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "13067:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13057:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "13148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13118:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13126:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13115:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "13115:30:22" + }, + "nodeType": "YulIf", + "src": "13112:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "13243:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13287:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13298:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13283:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13283:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13307:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13253:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "13253:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13243:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12461:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12472:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12484:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12492:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12500:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12508:6:22", + "type": "" + } + ], + "src": "12389:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13421:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13467:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13469:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13469:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13469:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13442:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13451:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13438:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13463:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13434:32:22" + }, + "nodeType": "YulIf", + "src": "13431:119:22" + }, + { + "nodeType": "YulBlock", + "src": "13560:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13575:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13589:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13579:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13604:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13639:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13650:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13635:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13659:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13614:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13614:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13604:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13687:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13702:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13716:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13706:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13732:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13767:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13778:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13763:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13763:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13787:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13742:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13742:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13732:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13383:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13394:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13406:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13414:6:22", + "type": "" + } + ], + "src": "13338:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13901:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13947:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13949:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13949:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13949:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13922:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13931:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13918:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13943:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13914:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13914:32:22" + }, + "nodeType": "YulIf", + "src": "13911:119:22" + }, + { + "nodeType": "YulBlock", + "src": "14040:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14055:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14069:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14059:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14084:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14119:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14130:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14115:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14115:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14139:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14094:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14094:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14084:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14167:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14182:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14196:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14186:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14212:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14247:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14258:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14243:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14243:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14267:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14222:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14222:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14212:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13863:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13874:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13886:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13894:6:22", + "type": "" + } + ], + "src": "13818:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14326:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14343:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14346:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14336:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14336:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14336:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14440:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14443:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14433:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14433:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14464:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14467:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14457:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14457:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14457:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14298:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14535:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14545:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14559:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14565:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "14555:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14555:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14545:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14576:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14606:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14612:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14602:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14602:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "14580:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14653:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14667:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14681:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14689:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14677:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14677:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14667:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14633:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14626:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14626:26:22" + }, + "nodeType": "YulIf", + "src": "14623:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14756:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "14770:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "14770:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14770:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14720:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14743:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14751:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14740:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "14740:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "14717:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "14717:38:22" + }, + "nodeType": "YulIf", + "src": "14714:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14519:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14528:6:22", + "type": "" + } + ], + "src": "14484:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14916:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14938:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14946:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14934:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14934:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14950:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14927:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14927:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14927:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15006:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15014:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15002:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15002:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15019:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14995:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14995:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14995:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14908:6:22", + "type": "" + } + ], + "src": "14810:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15182:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15192:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15258:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15263:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15199:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15199:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15192:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15364:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "15275:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15275:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15275:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15377:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15388:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15393:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15384:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15384:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15377:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15170:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15178:3:22", + "type": "" + } + ], + "src": "15036:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15579:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15589:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15601:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15612:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15597:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15597:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15589:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15636:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15647:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15632:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15632:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15655:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15661:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15651:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15651:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15625:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15625:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15625:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15681:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15815:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15689:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15689:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15681:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15559:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15574:4:22", + "type": "" + } + ], + "src": "15408:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15939:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15961:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15969:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15957:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15973:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15950:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15950:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15950:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16029:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16037:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16025:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16025:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16042:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16018:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16018:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16018:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15931:6:22", + "type": "" + } + ], + "src": "15833:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16233:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16243:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16309:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16314:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16250:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "16250:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16243:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16415:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "16326:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "16326:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16326:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "16428:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16439:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16444:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16435:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16435:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16428:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16221:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16229:3:22", + "type": "" + } + ], + "src": "16087:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16630:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16640:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16652:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16663:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16648:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16640:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16687:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16698:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16683:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16683:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16706:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16712:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16702:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16702:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16676:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16676:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16676:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "16732:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16866:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16740:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "16740:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16732:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16610:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16625:4:22", + "type": "" + } + ], + "src": "16459:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16990:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17012:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17020:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17008:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17008:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17024:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17001:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17001:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17001:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17080:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17088:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17076:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17093:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17069:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17069:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17069:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16982:6:22", + "type": "" + } + ], + "src": "16884:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17268:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17278:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17344:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17349:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17285:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17285:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17278:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17450:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "17361:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17361:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17361:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17463:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17474:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17479:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17470:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17470:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17463:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17256:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17264:3:22", + "type": "" + } + ], + "src": "17122:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17665:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17675:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17687:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17698:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17683:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17683:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17675:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17722:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17733:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17718:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17718:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17741:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17747:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17737:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17737:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17711:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17711:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17711:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17767:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17901:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17775:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17775:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17767:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17645:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17660:4:22", + "type": "" + } + ], + "src": "17494:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18025:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18047:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18055:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18043:14:22" + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18059:27:22", + "type": "", + "value": "ERC5725: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18036:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18036:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18036:51:22" + } + ] + }, + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18017:6:22", + "type": "" + } + ], + "src": "17919:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18246:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18256:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18322:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18327:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18263:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18263:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18256:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18428:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulIdentifier", + "src": "18339:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18339:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18339:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18441:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18452:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18457:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18448:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18448:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18441:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18234:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18242:3:22", + "type": "" + } + ], + "src": "18100:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18643:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18653:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18665:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18676:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18661:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18661:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18653:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18700:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18711:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18696:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18696:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18719:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18725:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18715:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18715:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18689:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18689:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18689:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18745:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18879:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18753:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "18753:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18745:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18623:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18638:4:22", + "type": "" + } + ], + "src": "18472:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19003:60:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19025:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19033:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19021:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19021:14:22" + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19037:18:22", + "type": "", + "value": "Not owner of NFT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19014:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19014:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19014:42:22" + } + ] + }, + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18995:6:22", + "type": "" + } + ], + "src": "18897:166:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19215:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19225:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19291:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19296:2:22", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19232:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19232:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19225:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19397:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulIdentifier", + "src": "19308:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19308:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19308:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19410:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19421:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19426:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19417:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19417:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19410:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19203:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19211:3:22", + "type": "" + } + ], + "src": "19069:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19612:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19622:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19634:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19645:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19630:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19630:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19622:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19669:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19680:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19665:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19665:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19688:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19694:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19684:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19684:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19658:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19658:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19658:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19714:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19848:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19722:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19722:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19714:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19592:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19607:4:22", + "type": "" + } + ], + "src": "19441:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19972:70:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19994:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20002:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19990:14:22" + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20006:28:22", + "type": "", + "value": "ERC5725: No pending payout" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19983:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19983:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19983:52:22" + } + ] + }, + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19964:6:22", + "type": "" + } + ], + "src": "19866:176:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20194:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20204:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20270:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20275:2:22", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20211:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20211:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20204:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20376:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulIdentifier", + "src": "20287:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20287:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20287:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20389:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20400:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20405:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20396:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20396:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20389:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20182:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20190:3:22", + "type": "" + } + ], + "src": "20048:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20591:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20601:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20613:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20624:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20609:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20609:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20601:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20648:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20659:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20644:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20644:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20667:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20673:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20663:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20663:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20637:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20637:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20637:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "20693:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20827:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20701:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "20701:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20693:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20571:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20586:4:22", + "type": "" + } + ], + "src": "20420:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20873:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20890:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20893:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20883:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20883:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20883:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20987:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20990:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20980:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20980:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20980:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21011:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21014:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21004:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21004:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21004:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "20845:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21075:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21085:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21108:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21090:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21090:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21085:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21119:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21142:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21124:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21124:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21119:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21153:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21164:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21167:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21160:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21160:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21153:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21193:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21195:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "21195:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21195:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21185:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21188:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21182:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "21182:10:22" + }, + "nodeType": "YulIf", + "src": "21179:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21062:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21065:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "21071:3:22", + "type": "" + } + ], + "src": "21031:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21334:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21356:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21364:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21352:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21352:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21368:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21345:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21345:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21345:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21326:6:22", + "type": "" + } + ], + "src": "21228:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21554:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21564:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21630:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21635:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21571:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "21571:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21564:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21736:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "21647:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "21647:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21647:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "21749:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21760:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21765:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21756:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21749:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21542:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21550:3:22", + "type": "" + } + ], + "src": "21408:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21951:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21961:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21973:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21984:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21969:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21969:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21961:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22008:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22019:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22004:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22004:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22027:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22033:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22023:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22023:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21997:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21997:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21997:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "22053:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22187:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22061:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "22061:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22053:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21931:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21946:4:22", + "type": "" + } + ], + "src": "21780:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22311:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22333:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22341:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22329:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22329:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22345:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22322:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22322:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22401:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22409:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22397:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22397:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22414:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22390:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22390:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22390:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22303:6:22", + "type": "" + } + ], + "src": "22205:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22585:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22595:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22661:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22666:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22602:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "22602:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22595:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22767:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "22678:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "22678:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22678:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "22780:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22791:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22796:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22787:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22780:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22573:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22581:3:22", + "type": "" + } + ], + "src": "22439:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22982:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22992:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23004:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23015:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23000:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22992:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23050:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23035:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23058:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23064:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23054:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23054:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23028:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23028:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23028:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "23084:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23218:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23092:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "23092:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23084:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22962:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22977:4:22", + "type": "" + } + ], + "src": "22811:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23342:66:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23364:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23372:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23360:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23360:14:22" + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23376:24:22", + "type": "", + "value": "to cannot be address 0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23353:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23353:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23353:48:22" + } + ] + }, + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23334:6:22", + "type": "" + } + ], + "src": "23236:172:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23560:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23570:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23636:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23641:2:22", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23577:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "23577:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23570:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23742:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulIdentifier", + "src": "23653:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "23653:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23653:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "23755:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23766:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23771:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23762:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23762:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23755:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23548:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23556:3:22", + "type": "" + } + ], + "src": "23414:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23957:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23967:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23979:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23990:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23975:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23967:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24014:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24025:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24010:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24010:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24033:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24039:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24029:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24029:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24003:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24003:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24003:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "24059:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24193:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24067:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "24067:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24059:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23937:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23952:4:22", + "type": "" + } + ], + "src": "23786:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24317:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24339:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24347:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24335:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24335:14:22" + }, + { + "hexValue": "72656c65617365206d75737420626520696e20667574757265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24351:27:22", + "type": "", + "value": "release must be in future" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24328:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24328:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24328:51:22" + } + ] + }, + "name": "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24309:6:22", + "type": "" + } + ], + "src": "24211:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24538:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24548:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24614:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24619:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24555:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "24555:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24548:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24720:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "nodeType": "YulIdentifier", + "src": "24631:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "24631:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24631:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "24733:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24744:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24749:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24740:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24733:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24526:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24534:3:22", + "type": "" + } + ], + "src": "24392:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24935:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24945:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24968:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24953:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24945:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24992:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25003:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24988:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24988:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25011:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25017:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25007:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25007:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24981:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24981:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24981:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "25037:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25171:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25045:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "25045:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25037:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24915:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24930:4:22", + "type": "" + } + ], + "src": "24764:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25232:190:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25242:33:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25269:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25251:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25251:24:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25242:5:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25365:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25367:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "25367:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25367:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25290:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25297:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "25287:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "25287:77:22" + }, + "nodeType": "YulIf", + "src": "25284:103:22" + }, + { + "nodeType": "YulAssignment", + "src": "25396:20:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25407:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25414:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25403:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25403:13:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "25396:3:22" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25218:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "25228:3:22", + "type": "" + } + ], + "src": "25189:233:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25473:149:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25483:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25506:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25488:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25488:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25483:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25517:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25540:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25522:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25522:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25517:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25551:17:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25563:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25566:1:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25559:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25559:9:22" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25551:4:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25593:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25595:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "25595:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25595:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25584:4:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25590:1:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "25581:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "25581:11:22" + }, + "nodeType": "YulIf", + "src": "25578:37:22" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25459:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25462:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "25468:4:22", + "type": "" + } + ], + "src": "25428:194:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25742:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25752:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25767:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "25752:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25714:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "25719:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "25730:11:22", + "type": "" + } + ], + "src": "25628:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25892:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25902:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25949:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "25916:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "25916:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "25906:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25964:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26048:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26053:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "25971:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "25971:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25964:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26108:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26115:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26104:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26104:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26122:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26127:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "26069:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "26069:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26069:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "26143:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26154:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26159:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26150:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26150:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26143:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25873:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25880:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25888:3:22", + "type": "" + } + ], + "src": "25782:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26362:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26373:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "26462:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26471:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "26380:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "26380:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26373:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26485:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "26574:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26583:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "26492:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "26492:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26485:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26597:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26604:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26597:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26333:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "26339:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "26347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26358:3:22", + "type": "" + } + ], + "src": "26178:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26725:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26747:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26755:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26743:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26743:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26759:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26736:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26736:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26736:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26815:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26823:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26811:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26811:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26828:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26804:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26804:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26804:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26717:6:22", + "type": "" + } + ], + "src": "26619:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26995:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27005:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27071:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27076:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27012:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "27012:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27005:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27177:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "27088:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "27088:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27088:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "27190:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27201:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27206:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27197:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27197:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27190:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26983:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26991:3:22", + "type": "" + } + ], + "src": "26849:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27392:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27402:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27414:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27425:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27410:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27410:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27402:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27449:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27460:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27445:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27445:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27468:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27474:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27464:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27464:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27438:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27438:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27438:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "27494:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27628:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27502:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "27502:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27494:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27372:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27387:4:22", + "type": "" + } + ], + "src": "27221:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27752:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27774:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27770:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27786:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27763:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27763:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27763:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27842:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27850:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27838:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27838:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27855:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27831:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27831:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27831:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27744:6:22", + "type": "" + } + ], + "src": "27646:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28021:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28031:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28097:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28102:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28038:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "28038:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28031:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28203:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "28114:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "28114:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28114:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "28216:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28227:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28232:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28223:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28223:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28216:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28009:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28017:3:22", + "type": "" + } + ], + "src": "27875:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28418:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28428:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28440:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28451:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28436:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28436:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28428:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28475:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28486:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28471:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28471:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28494:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28500:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28490:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28490:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28464:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28464:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28464:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "28520:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28654:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28528:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "28528:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28520:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28398:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28413:4:22", + "type": "" + } + ], + "src": "28247:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28798:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28808:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28820:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28831:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28816:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28816:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28808:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28888:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28901:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28912:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28897:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "28844:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "28844:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28844:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28969:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28982:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28993:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28978:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28978:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "28925:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "28925:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28925:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28762:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "28774:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "28782:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28793:4:22", + "type": "" + } + ], + "src": "28672:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29116:76:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29138:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29146:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29134:14:22" + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29150:34:22", + "type": "", + "value": "ERC721: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29127:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29127:58:22" + } + ] + }, + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29108:6:22", + "type": "" + } + ], + "src": "29010:182:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29344:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29354:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29420:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29425:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29361:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "29361:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29354:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29526:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulIdentifier", + "src": "29437:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "29437:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29437:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "29539:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29550:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29555:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29546:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29546:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29539:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29332:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29340:3:22", + "type": "" + } + ], + "src": "29198:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29741:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29751:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29763:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29774:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29759:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29759:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29751:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29798:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29809:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29794:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29794:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29817:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29823:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29813:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29813:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29787:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29787:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29787:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "29843:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29977:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29851:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "29851:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29843:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29721:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29736:4:22", + "type": "" + } + ], + "src": "29570:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30101:72:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30123:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30131:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30119:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30119:14:22" + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30135:30:22", + "type": "", + "value": "ERC721: token already minted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30112:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30112:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30112:54:22" + } + ] + }, + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30093:6:22", + "type": "" + } + ], + "src": "29995:178:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30325:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30335:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30401:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30406:2:22", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30342:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "30342:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30335:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30507:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulIdentifier", + "src": "30418:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "30418:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30418:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "30520:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30531:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30536:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30527:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30527:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30520:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30313:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30321:3:22", + "type": "" + } + ], + "src": "30179:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30722:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30732:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30744:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30755:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30740:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30732:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30779:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30790:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30775:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30798:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30804:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30794:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30794:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30768:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30768:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30768:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "30824:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30958:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30832:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "30832:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30824:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30702:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30717:4:22", + "type": "" + } + ], + "src": "30551:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31130:288:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31140:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31152:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31163:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31148:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31148:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31140:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31220:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31233:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31244:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31229:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31229:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31176:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31176:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31176:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31301:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31314:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31325:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31310:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31257:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31257:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31257:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "31383:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31396:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31407:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31392:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31392:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "31339:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31339:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31339:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31086:9:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "31098:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31106:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31114:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31125:4:22", + "type": "" + } + ], + "src": "30976:442:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31530:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31552:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31560:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31548:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31564:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31541:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "31541:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31541:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31522:6:22", + "type": "" + } + ], + "src": "31424:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31751:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31761:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31827:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31832:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31768:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "31768:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31761:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31933:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "31844:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "31844:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31844:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "31946:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31957:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31962:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31953:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31946:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31739:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31747:3:22", + "type": "" + } + ], + "src": "31605:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32148:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "32250:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32384:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32258:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "32258:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32128:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32143:4:22", + "type": "" + } + ], + "src": "31977:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32508:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32530:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32538:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32526:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32526:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32542:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32519:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32519:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32519:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32598:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32606:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32594:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32594:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32611:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32587:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32587:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32587:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32500:6:22", + "type": "" + } + ], + "src": "32402:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32791:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32801:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32867:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32872:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32808:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "32808:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32801:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32973:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "32884:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "32884:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32884:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "32986:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32997:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33002:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32993:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32993:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32986:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32779:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32787:3:22", + "type": "" + } + ], + "src": "32645:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33188:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33198:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33210:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33221:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33206:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33206:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33198:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33245:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33256:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33241:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33241:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33264:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33270:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33260:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33260:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33234:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33234:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33234:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "33290:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33424:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33298:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "33298:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33290:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33168:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33183:4:22", + "type": "" + } + ], + "src": "33017:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33470:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33487:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33490:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33480:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33480:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33480:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33584:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33587:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33577:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33577:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33577:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33608:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33611:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "33601:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33601:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33601:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "33442:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33688:77:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33698:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "33713:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "33707:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "33707:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33698:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33753:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "33729:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "33729:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33729:30:22" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "33666:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33674:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "33682:5:22", + "type": "" + } + ], + "src": "33628:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33845:271:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "33891:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "33893:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "33893:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33893:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "33866:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33875:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33862:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33862:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33887:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "33858:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33858:32:22" + }, + "nodeType": "YulIf", + "src": "33855:119:22" + }, + { + "nodeType": "YulBlock", + "src": "33984:125:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "33999:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34013:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34003:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "34028:71:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34071:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34082:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34067:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34067:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34091:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "34038:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "34038:61:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34028:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33815:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "33826:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33838:6:22", + "type": "" + } + ], + "src": "33771:345:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34228:123:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34250:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34258:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34246:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34246:14:22" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34262:34:22", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34239:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34239:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34318:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34326:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34314:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34314:15:22" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34331:12:22", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34307:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34307:37:22" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34220:6:22", + "type": "" + } + ], + "src": "34122:229:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34503:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34513:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34579:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34584:2:22", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34520:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "34520:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34513:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34685:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "34596:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "34596:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34596:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34698:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34709:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34714:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34705:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34698:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34491:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34499:3:22", + "type": "" + } + ], + "src": "34357:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34900:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34910:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34922:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34933:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34918:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34910:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34968:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34953:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34976:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34972:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34946:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34946:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34946:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "35002:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35136:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35010:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "35010:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35002:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34880:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34895:4:22", + "type": "" + } + ], + "src": "34729:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35212:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35223:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35239:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "35233:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "35233:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35223:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35195:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35205:6:22", + "type": "" + } + ], + "src": "35154:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35353:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35370:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35375:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35363:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "35363:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35363:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "35391:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35410:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35415:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35406:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35406:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "35391:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35325:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35330:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "35341:11:22", + "type": "" + } + ], + "src": "35258:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35522:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "35532:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35578:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "35546:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "35546:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35536:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "35593:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35658:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35663:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35600:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "35600:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35593:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35718:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35725:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35714:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35714:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35732:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35737:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "35679:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "35679:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35679:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "35753:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35764:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35791:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "35769:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "35769:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35760:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35760:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35753:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35503:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35510:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35518:3:22", + "type": "" + } + ], + "src": "35432:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36011:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36021:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36033:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36044:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36029:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36029:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36021:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36102:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36115:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36126:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36111:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36111:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "36058:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36058:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36058:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "36183:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36196:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36207:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36192:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36192:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "36139:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36139:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36139:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "36265:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36278:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36289:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36274:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36274:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "36221:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36221:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36221:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36314:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36325:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36310:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36334:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36340:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36330:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36330:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36303:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36303:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36303:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "36360:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "36430:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36439:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36368:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "36368:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36360:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35959:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "35971:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "35979:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35987:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35995:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36006:4:22", + "type": "" + } + ], + "src": "35811:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36519:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36529:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36544:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36538:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "36538:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36529:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36586:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "36560:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "36560:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36560:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36497:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36505:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36513:5:22", + "type": "" + } + ], + "src": "36457:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36680:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "36726:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "36728:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "36728:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36728:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36701:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36710:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36697:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36697:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36722:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "36693:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36693:32:22" + }, + "nodeType": "YulIf", + "src": "36690:119:22" + }, + { + "nodeType": "YulBlock", + "src": "36819:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36834:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36848:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36838:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36863:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36908:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36919:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36904:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36904:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36928:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "36873:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "36873:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36863:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36650:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "36661:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "36673:6:22", + "type": "" + } + ], + "src": "36604:349:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37065:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37087:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37095:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37083:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37083:14:22" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37099:34:22", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37076:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37076:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37076:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37155:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37163:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37151:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37151:15:22" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37168:8:22", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37144:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37144:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37144:33:22" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "37057:6:22", + "type": "" + } + ], + "src": "36959:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37336:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37346:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37412:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37417:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37353:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "37353:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37346:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37518:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "37429:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "37429:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37429:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "37531:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37542:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37547:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37538:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37538:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37531:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37324:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37332:3:22", + "type": "" + } + ], + "src": "37190:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37733:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37743:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37755:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37766:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37751:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37751:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37743:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37790:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37801:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37786:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37786:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37809:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37815:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37805:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37805:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37779:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37779:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37779:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "37835:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37969:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37843:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "37843:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37835:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37713:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37728:4:22", + "type": "" + } + ], + "src": "37562:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38100:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38110:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38125:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "38110:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38072:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "38077:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "38088:11:22", + "type": "" + } + ], + "src": "37987:147:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38248:278:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38258:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38304:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38272:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "38272:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "38262:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38319:95:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38402:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38407:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "38326:75:22" + }, + "nodeType": "YulFunctionCall", + "src": "38326:88:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38319:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38462:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38469:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38458:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38458:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38476:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38481:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "38423:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "38423:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38423:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "38497:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38508:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38513:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38504:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38497:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38229:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38236:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38244:3:22", + "type": "" + } + ], + "src": "38140:386:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38666:137:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38677:100:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "38764:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38773:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "38684:79:22" + }, + "nodeType": "YulFunctionCall", + "src": "38684:93:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38677:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38787:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38794:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38787:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38645:3:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38651:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38662:3:22", + "type": "" + } + ], + "src": "38532:271:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38915:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "38937:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38945:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38933:14:22" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "38949:31:22", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38926:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "38926:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38926:55:22" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "38907:6:22", + "type": "" + } + ], + "src": "38809:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39140:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39150:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39216:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39221:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39157:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "39157:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39150:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39322:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "39233:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "39233:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39233:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "39335:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39346:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39351:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39342:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39342:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "39335:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "39128:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "39136:3:22", + "type": "" + } + ], + "src": "38994:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39537:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39547:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39559:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39570:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39555:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39555:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39547:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39594:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39605:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39590:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39590:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39613:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39619:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39609:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39609:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39583:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39583:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39583:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "39639:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39773:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39647:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "39647:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39639:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39517:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39532:4:22", + "type": "" + } + ], + "src": "39366:419:22" + } + ] + }, + "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_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 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_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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$777_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$777_to_t_address(value))\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 cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_contract$_IERC20_$777_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_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\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 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 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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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__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 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 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_decode_tuple_t_addresst_addresst_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_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 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 abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\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 validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_contract$_IERC20_$777(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$777(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$777(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$777(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC20_$777(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777(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_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_contract$_IERC20_$777(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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 abi_decode_tuple_t_uint256t_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_uint256(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_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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__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_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of NFT\")\n\n }\n\n function abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__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_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: No pending payout\")\n\n }\n\n function abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__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_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack( tail)\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 store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(memPtr) {\n\n mstore(add(memPtr, 0), \"to cannot be address 0\")\n\n }\n\n function abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__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_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860(memPtr) {\n\n mstore(add(memPtr, 0), \"release must be in future\")\n\n }\n\n function abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__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_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\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 store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__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_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\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 }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__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_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( 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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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 store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__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_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__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_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x746B5D61 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x746B5D61 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x81D0526D EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3CE JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D4 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x258E JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x570 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x270D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x286C JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xE34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x377 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x395 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B8 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E3 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x418 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x2A6D JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x2BE2 JUMP JUMPDEST PUSH2 0x1088 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x450 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x480 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x569 JUMPI POP PUSH2 0x568 DUP3 PUSH2 0x126F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x607 SWAP1 PUSH2 0x2D14 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 0x633 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x680 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x655 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x680 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 0x663 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DB DUP3 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x74B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x742 SWAP1 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x76A PUSH2 0x139C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x799 JUMPI POP PUSH2 0x798 DUP2 PUSH2 0x793 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST JUMPDEST PUSH2 0x7D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7CF SWAP1 PUSH2 0x2E49 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7E2 DUP4 DUP4 PUSH2 0x13A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x7F8 PUSH2 0x7F2 PUSH2 0x139C JUMP JUMPDEST DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x837 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82E SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x842 DUP4 DUP4 DUP4 PUSH2 0x14F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x851 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x890 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x887 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8B0 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x906 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8FD SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x956 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94D SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x99D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C8 SWAP2 SWAP1 PUSH2 0x306E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA02 CALLER DUP3 PUSH2 0x9DD DUP7 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x182C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA22 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1088 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA34 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xA73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA6A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA7C DUP5 PUSH2 0x18B2 JUMP JUMPDEST PUSH2 0xA85 DUP6 PUSH2 0x1900 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA9B DUP4 PUSH2 0x194E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7C SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC32 SWAP1 PUSH2 0x31EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xC8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC86 SWAP1 PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xDE9 SWAP1 PUSH2 0x3278 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xDF8 DUP6 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xE2D CALLER ADDRESS DUP7 PUSH2 0xE07 DUP6 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1BA8 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xE40 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE76 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE88 DUP4 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0xE91 DUP5 PUSH2 0x1C31 JUMP JUMPDEST PUSH2 0xE9B SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEAF DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE5 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF16 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xF55 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4C SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF5E DUP4 PUSH2 0x1C51 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xF75 SWAP1 PUSH2 0x2D14 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 0xFA1 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFEE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFC3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFEE 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 0xFD1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1004 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1043 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1060 DUP5 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1084 PUSH2 0x107D PUSH2 0x139C JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1C91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1099 PUSH2 0x1093 PUSH2 0x139C JUMP JUMPDEST DUP4 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x10D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CF SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10E4 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10F5 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FF PUSH2 0x1E59 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x111F JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x114A JUMP JUMPDEST DUP1 PUSH2 0x1129 DUP5 PUSH2 0x1E70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x113A SWAP3 SWAP2 SWAP1 PUSH2 0x3330 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x115E DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x119D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1194 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11A6 DUP5 PUSH2 0x1900 JUMP JUMPDEST DUP4 LT PUSH2 0x11BC JUMPI PUSH2 0x11B5 DUP5 PUSH2 0x1C31 JUMP JUMPDEST SWAP2 POP PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D4 DUP3 TIMESTAMP PUSH2 0x1152 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x133A JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x134A JUMPI POP PUSH2 0x1349 DUP3 PUSH2 0x1F3E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x135A DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1390 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1417 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1469 DUP4 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x14AB JUMPI POP PUSH2 0x14AA DUP2 DUP6 PUSH2 0x11DB JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x14E9 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14D1 DUP5 PUSH2 0x68A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1512 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CE SWAP1 PUSH2 0x3458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1604 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1651 SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x17E6 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180D DUP4 PUSH2 0x194E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18AD DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x184B SWAP3 SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F1 SWAP1 PUSH2 0x34ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A03 DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A51 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST PUSH2 0x1A5A DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A91 SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1BA4 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1C2B DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1BC9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP1 PUSH2 0x35FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1DF0 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1E08 DUP5 DUP5 DUP5 PUSH2 0x14F2 JUMP JUMPDEST PUSH2 0x1E14 DUP5 DUP5 DUP5 DUP5 PUSH2 0x207B JUMP JUMPDEST PUSH2 0x1E53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4A SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E7F DUP5 PUSH2 0x2202 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E9E JUMPI PUSH2 0x1E9D PUSH2 0x2AB7 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 0x1ED0 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 0x1F33 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EDE JUMPI JUMPDEST DUP2 SWAP4 POP POP 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2016 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2355 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2076 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x36F2 JUMP JUMPDEST PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x206C SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x209C DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x236D JUMP JUMPDEST ISZERO PUSH2 0x21F5 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x20C5 PUSH2 0x139C JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3806 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2123 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 0x2120 SWAP2 SWAP1 PUSH2 0x3867 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x21A5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2153 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 0x2158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x219D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2194 SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x21FA JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2260 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2256 JUMPI PUSH2 0x2255 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x229D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2293 JUMPI PUSH2 0x2292 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22CC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x22F5 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x22EB JUMPI PUSH2 0x22EA PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x231A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2310 JUMPI PUSH2 0x230F PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x233D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x2333 JUMPI PUSH2 0x2332 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x234C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2364 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2390 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x23D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CC SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x23FE SWAP2 SWAP1 PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243B 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 0x2440 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2451 DUP8 DUP4 DUP4 DUP8 PUSH2 0x245D JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x24BF JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x24B7 JUMPI PUSH2 0x2477 DUP6 PUSH2 0x236D JUMP JUMPDEST PUSH2 0x24B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24AD SWAP1 PUSH2 0x39C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x24C9 DUP4 DUP4 PUSH2 0x24D2 JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x24E5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2519 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x256B DUP2 PUSH2 0x2536 JUMP JUMPDEST DUP2 EQ PUSH2 0x2576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2588 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25A4 JUMPI PUSH2 0x25A3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP5 DUP3 DUP6 ADD PUSH2 0x2579 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25D0 DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2604 DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP2 EQ PUSH2 0x260F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2621 DUP2 PUSH2 0x25FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x263D JUMPI PUSH2 0x263C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x264B DUP5 DUP3 DUP6 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2699 PUSH2 0x2694 PUSH2 0x268F DUP5 PUSH2 0x2654 JUMP JUMPDEST PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AB DUP3 PUSH2 0x267E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BD DUP3 PUSH2 0x26A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x26CD DUP2 PUSH2 0x26B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26DC DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2707 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2722 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x26C4 JUMP JUMPDEST PUSH2 0x272F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x273C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26FE JUMP JUMPDEST PUSH2 0x2749 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x26FE JUMP JUMPDEST SWAP6 SWAP5 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x278C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2771 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 0x27B4 DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x27BE DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST SWAP4 POP PUSH2 0x27CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x27D7 DUP2 PUSH2 0x2798 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 0x27FC DUP2 DUP5 PUSH2 0x27A9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F DUP3 PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x281F DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x283A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2816 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2849 DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP2 EQ PUSH2 0x2854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2866 DUP2 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2882 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2891 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A2 DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28E4 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x28F5 DUP7 DUP3 DUP8 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2914 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x2921 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x293E JUMPI PUSH2 0x293D PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294C DUP5 DUP3 DUP6 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x296A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x2984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2996 DUP2 PUSH2 0x2970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29A7 DUP3 PUSH2 0x2804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29B7 DUP2 PUSH2 0x299C JUMP JUMPDEST DUP2 EQ PUSH2 0x29C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x29D4 DUP2 PUSH2 0x29AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29F4 JUMPI PUSH2 0x29F3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A02 DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A13 DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2A24 DUP8 DUP3 DUP9 ADD PUSH2 0x2987 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2A35 DUP8 DUP3 DUP9 ADD PUSH2 0x29C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2A4A DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A67 DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A84 JUMPI PUSH2 0x2A83 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A92 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2A58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2AEF DUP3 PUSH2 0x2798 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2B0E JUMPI PUSH2 0x2B0D PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B21 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B2D DUP3 DUP3 PUSH2 0x2AE6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST PUSH2 0x2B56 DUP3 PUSH2 0x2798 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 0x2B85 PUSH2 0x2B80 DUP5 PUSH2 0x2B32 JUMP JUMPDEST PUSH2 0x2B17 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2BA1 JUMPI PUSH2 0x2BA0 PUSH2 0x2AB2 JUMP JUMPDEST JUMPDEST PUSH2 0x2BAC DUP5 DUP3 DUP6 PUSH2 0x2B63 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BC9 JUMPI PUSH2 0x2BC8 PUSH2 0x2AAD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BD9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2B72 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BFC JUMPI PUSH2 0x2BFB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C0A DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C1B DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2C2C DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C4D JUMPI PUSH2 0x2C4C PUSH2 0x2531 JUMP JUMPDEST JUMPDEST PUSH2 0x2C59 DUP8 DUP3 DUP9 ADD PUSH2 0x2BB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7C JUMPI PUSH2 0x2C7B PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C8A DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2C9B DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2CBC JUMPI PUSH2 0x2CBB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CCA DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2CDB DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2D2C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D3F JUMPI PUSH2 0x2D3E PUSH2 0x2CE5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA1 PUSH1 0x21 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2DAC DUP3 PUSH2 0x2D45 JUMP JUMPDEST PUSH1 0x40 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 0x2DD0 DUP2 PUSH2 0x2D94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E33 PUSH1 0x3D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E3E DUP3 PUSH2 0x2DD7 JUMP JUMPDEST PUSH1 0x40 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 0x2E62 DUP2 PUSH2 0x2E26 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EC5 PUSH1 0x2D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2ED0 DUP3 PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x40 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 0x2EF4 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F31 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2F3C DUP3 PUSH2 0x2EFB 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 0x2F60 DUP2 PUSH2 0x2F24 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x10 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 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 0x2FCC DUP2 PUSH2 0x2F90 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3009 PUSH1 0x1A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3014 DUP3 PUSH2 0x2FD3 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 0x3038 DUP2 PUSH2 0x2FFC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3079 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3084 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x309C JUMPI PUSH2 0x309B PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30D8 PUSH1 0x18 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x30E3 DUP3 PUSH2 0x30A2 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 0x3107 DUP2 PUSH2 0x30CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316A PUSH1 0x29 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3175 DUP3 PUSH2 0x310E JUMP JUMPDEST PUSH1 0x40 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 0x3199 DUP2 PUSH2 0x315D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31D6 PUSH1 0x16 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x31E1 DUP3 PUSH2 0x31A0 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 0x3205 DUP2 PUSH2 0x31C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x72656C65617365206D75737420626520696E2066757475726500000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3242 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x324D DUP3 PUSH2 0x320C 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 0x3271 DUP2 PUSH2 0x3235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3283 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x32B5 JUMPI PUSH2 0x32B4 PUSH2 0x303F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x32D6 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x32EE JUMPI PUSH2 0x32ED PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x330A DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x3314 DUP2 DUP6 PUSH2 0x32F4 JUMP JUMPDEST SWAP4 POP PUSH2 0x3324 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x333C DUP3 DUP6 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP PUSH2 0x3348 DUP3 DUP5 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33B0 PUSH1 0x25 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x33BB DUP3 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x40 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 0x33DF DUP2 PUSH2 0x33A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3442 PUSH1 0x24 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x344D DUP3 PUSH2 0x33E6 JUMP JUMPDEST PUSH1 0x40 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 0x3471 DUP2 PUSH2 0x3435 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x348D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x349A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D7 PUSH1 0x20 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x34E2 DUP3 PUSH2 0x34A1 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 0x3506 DUP2 PUSH2 0x34CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3543 PUSH1 0x1C DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x354E DUP3 PUSH2 0x350D 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 0x3572 DUP2 PUSH2 0x3536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x358E PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x359B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x35A8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E6 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x35F1 DUP3 PUSH2 0x35B0 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 0x3615 DUP2 PUSH2 0x35D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3678 PUSH1 0x32 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3683 DUP3 PUSH2 0x361C JUMP JUMPDEST PUSH1 0x40 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 0x36A7 DUP2 PUSH2 0x366B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x36EC DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3708 JUMPI PUSH2 0x3707 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3716 DUP5 DUP3 DUP6 ADD PUSH2 0x36DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x2A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3786 DUP3 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 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 0x37AA DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x37D8 DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x37E2 DUP2 DUP6 PUSH2 0x37BC JUMP JUMPDEST SWAP4 POP PUSH2 0x37F2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x37FB DUP2 PUSH2 0x2798 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x381B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3828 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3835 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3847 DUP2 DUP5 PUSH2 0x37CD JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3861 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x388B DUP5 DUP3 DUP6 ADD PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38F0 PUSH1 0x26 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x38FB DUP3 PUSH2 0x3894 JUMP JUMPDEST PUSH1 0x40 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 0x391F DUP2 PUSH2 0x38E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393C DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x3946 DUP2 DUP6 PUSH2 0x3926 JUMP JUMPDEST SWAP4 POP PUSH2 0x3956 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396E DUP3 DUP5 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x1D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x39BA DUP3 PUSH2 0x3979 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 0x39DE DUP2 PUSH2 0x39A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xBC SWAP5 PUSH27 0x635537FDA1DB652C421F31AD5F762A8C920AB72E4F2409561F0ECA 0x2C PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:2868:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:267:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;413:50:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2471:98:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;873:474:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2642:250:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2190:219:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1182:694:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1828:224:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:233:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1926:301:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:163:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:267:17;3350:14;3402:26;3387:41;;;:11;:41;;;;:81;;;;3432:36;3456:11;3432:23;:36::i;:::-;3387:81;3380:88;;3208:267;;;:::o;413:50:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2471:98:6:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;873:474:17:-;944:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;991:10:::1;971:30;;:16;979:7;971;:16::i;:::-;:30;;;963:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:21;1056:24;1072:7;1056:15;:24::i;:::-;1032:48;;1114:1;1098:13;:17;1090:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1185:10;1162:49;;1176:7;1162:49;1197:13;1162:49;;;;;;:::i;:::-;;;;;;;;1249:13;1222:14;:23;1237:7;1222:23;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;1272:68;1314:10;1326:13;1279:20;1291:7;1279:11;:20::i;:::-;1272:41;;;;:68;;;;;:::i;:::-;953:394;873:474:::0;;:::o;5004:179:6:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2642:250:17:-;2782:20;2804:18;2756:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:19:::1;2857:7;2846:10;:19::i;:::-;2867:17;2876:7;2867:8;:17::i;:::-;2838:47;;;;2642:250:::0;;;;:::o;2190:219:6:-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;1182:694:21:-;1351:1;1337:16;;:2;:16;;;1329:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1417:15;1398:16;:34;;;1390:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1473:18;1494:15;;1473:36;;1546:171;;;;;;;;1585:5;1546:171;;;;;;1612:6;1546:171;;;;1651:15;1546:171;;;;;;1690:16;1546:171;;;;;1520:11;:23;1532:10;1520:23;;;;;;;;;;;:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1728:15;;:17;;;;;;;;;:::i;:::-;;;;;;1755:21;1761:2;1765:10;1755:5;:21::i;:::-;1786:83;1835:10;1855:4;1862:6;1793:23;1805:10;1793:11;:23::i;:::-;1786:48;;;;:83;;;;;;:::i;:::-;1319:557;1182:694;;;;:::o;1828:224:17:-;1968:14;1942:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2024:21:::1;2037:7;2024:12;:21::i;:::-;2005:16;2013:7;2005;:16::i;:::-;:40;;;;:::i;:::-;1998:47;;1828:224:::0;;;;:::o;2385:207::-;2525:14;2499:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2562:14:::1;:23;2577:7;2562:23;;;;;;;;;;;;2555:30;;2385:207:::0;;;;:::o;2942:158::-;3040:13;3022:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3072:21:::1;3085:7;3072:12;:21::i;:::-;3065:28;;2942:158:::0;;;;:::o;2633:102:6:-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;2102:233:17:-;2244:14;2218:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:14:::1;:23;2320:7;2305:23;;;;;;;;;;;;2281:21;2294:7;2281:12;:21::i;:::-;:47;;;;:::i;:::-;2274:54;;2102:233:::0;;;;:::o;4169:153:6:-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;1926:301:21:-;2089:14;2063:7;759:16:17;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2136:17:21::1;2145:7;2136:8;:17::i;:::-;2123:9;:30;2119:84;;2176:16;2184:7;2176;:16::i;:::-;2169:23;;;;2119:84;2219:1;2212:8;;815:1:17;1926:301:21::0;;;;;:::o;1397:163:17:-;1476:14;1509:44;1528:7;1537:15;1509:18;:44::i;:::-;1502:51;;1397:163;;;:::o;4388:162:6:-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;1570:300::-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;13466:133::-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;7256:126::-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;763:205:5:-;875:86;895:5;925:23;;;950:2;954:5;902:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;:::-;763:205;;;:::o;2645:132:21:-;2714:7;2740:11;:20;2752:7;2740:20;;;;;;;;;;;:30;;;;;;;;;;;;2733:37;;;;2645:132;;;:::o;2826:128::-;2893:7;2919:11;:20;2931:7;2919:20;;;;;;;;;;;:28;;;;;;;;;;;;2912:35;;;;2826:128;;;:::o;6838:115:6:-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;9091:920::-;9184:1;9170:16;;:2;:16;;;9162:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:16;9250:7;9242;:16::i;:::-;9241:17;9233:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;9446:16;9454:7;9446;:16::i;:::-;9445:17;9437:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:1;9837:9;:13;9847:2;9837:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9895:2;9876:7;:16;9884:7;9876:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9938:7;9934:2;9913:33;;9930:1;9913:33;;;;;;;;;;;;9957:47;9985:1;9989:2;9993:7;10002:1;9957:19;:47::i;:::-;9091:920;;:::o;974:241:5:-;1112:96;1132:5;1162:27;;;1191:4;1197:2;1201:5;1139:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:19;:96::i;:::-;974:241;;;;:::o;2470:126:21:-;2536:7;2562:11;:20;2574:7;2562:20;;;;;;;;;;;:27;;;2555:34;;2470:126;;;:::o;2276:145::-;2347:7;2381:11;:20;2393:7;2381:20;;;;;;;;;;;:32;;;;;;;;;;;;2366:48;;2276:145;;;:::o;13075:307:6:-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;3319:92::-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;15698:154:6:-;;;;;:::o;16558:153::-;;;;;:::o;3747:706:5:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4166:95;;4295:1;4275:10;:17;:21;4271:176;;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:176;3817:636;3747:706;;:::o;14151:831:6:-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;3873:223:10:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;;3873:223;;;;;:::o;1175:320::-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;4960:446::-;5125:12;5182:5;5157:21;:30;;5149:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5241:12;5255:23;5282:6;:11;;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;;;;4960:446;;;;;;:::o;7466:628::-;7646:12;7674:7;7670:418;;;7722:1;7701:10;:17;:22;7697:286;;7916:18;7927:6;7916:10;:18::i;:::-;7908:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:286;8003:10;7996:17;;;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;;:::o;8616:540::-;8795:1;8775:10;:17;:21;8771:379;;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:75:22;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:60::-;2369:3;2390:5;2383:12;;2341:60;;;:::o;2407:142::-;2457:9;2490:53;2508:34;2517:24;2535:5;2517:24;:::i;:::-;2508:34;:::i;:::-;2490:53;:::i;:::-;2477:66;;2407:142;;;:::o;2555:126::-;2605:9;2638:37;2669:5;2638:37;:::i;:::-;2625:50;;2555:126;;;:::o;2687:140::-;2751:9;2784:37;2815:5;2784:37;:::i;:::-;2771:50;;2687:140;;;:::o;2833:159::-;2934:51;2979:5;2934:51;:::i;:::-;2929:3;2922:64;2833:159;;:::o;2998:118::-;3085:24;3103:5;3085:24;:::i;:::-;3080:3;3073:37;2998:118;;:::o;3122:::-;3159:7;3199:34;3192:5;3188:46;3177:57;;3122:118;;;:::o;3246:::-;3333:24;3351:5;3333:24;:::i;:::-;3328:3;3321:37;3246:118;;:::o;3370:581::-;3561:4;3599:3;3588:9;3584:19;3576:27;;3613:85;3695:1;3684:9;3680:17;3671:6;3613:85;:::i;:::-;3708:72;3776:2;3765:9;3761:18;3752:6;3708:72;:::i;:::-;3790;3858:2;3847:9;3843:18;3834:6;3790:72;:::i;:::-;3872;3940:2;3929:9;3925:18;3916:6;3872:72;:::i;:::-;3370:581;;;;;;;:::o;3957:99::-;4009:6;4043:5;4037:12;4027:22;;3957:99;;;:::o;4062:169::-;4146:11;4180:6;4175:3;4168:19;4220:4;4215:3;4211:14;4196:29;;4062:169;;;;:::o;4237:246::-;4318:1;4328:113;4342:6;4339:1;4336:13;4328:113;;;4427:1;4422:3;4418:11;4412:18;4408:1;4403:3;4399:11;4392:39;4364:2;4361:1;4357:10;4352:15;;4328:113;;;4475:1;4466:6;4461:3;4457:16;4450:27;4299:184;4237:246;;;:::o;4489:102::-;4530:6;4581:2;4577:7;4572:2;4565:5;4561:14;4557:28;4547:38;;4489:102;;;:::o;4597:377::-;4685:3;4713:39;4746:5;4713:39;:::i;:::-;4768:71;4832:6;4827:3;4768:71;:::i;:::-;4761:78;;4848:65;4906:6;4901:3;4894:4;4887:5;4883:16;4848:65;:::i;:::-;4938:29;4960:6;4938:29;:::i;:::-;4933:3;4929:39;4922:46;;4689:285;4597:377;;;;:::o;4980:313::-;5093:4;5131:2;5120:9;5116:18;5108:26;;5180:9;5174:4;5170:20;5166:1;5155:9;5151:17;5144:47;5208:78;5281:4;5272:6;5208:78;:::i;:::-;5200:86;;4980:313;;;;:::o;5299:96::-;5336:7;5365:24;5383:5;5365:24;:::i;:::-;5354:35;;5299:96;;;:::o;5401:118::-;5488:24;5506:5;5488:24;:::i;:::-;5483:3;5476:37;5401:118;;:::o;5525:222::-;5618:4;5656:2;5645:9;5641:18;5633:26;;5669:71;5737:1;5726:9;5722:17;5713:6;5669:71;:::i;:::-;5525:222;;;;:::o;5753:122::-;5826:24;5844:5;5826:24;:::i;:::-;5819:5;5816:35;5806:63;;5865:1;5862;5855:12;5806:63;5753:122;:::o;5881:139::-;5927:5;5965:6;5952:20;5943:29;;5981:33;6008:5;5981:33;:::i;:::-;5881:139;;;;:::o;6026:474::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6277:1;6302:53;6347:7;6338:6;6327:9;6323:22;6302:53;:::i;:::-;6292:63;;6248:117;6404:2;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6375:118;6026:474;;;;;:::o;6506:619::-;6583:6;6591;6599;6648:2;6636:9;6627:7;6623:23;6619:32;6616:119;;;6654:79;;:::i;:::-;6616:119;6774:1;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6745:117;6901:2;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6872:118;7029:2;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7000:118;6506:619;;;;;:::o;7131:332::-;7252:4;7290:2;7279:9;7275:18;7267:26;;7303:71;7371:1;7360:9;7356:17;7347:6;7303:71;:::i;:::-;7384:72;7452:2;7441:9;7437:18;7428:6;7384:72;:::i;:::-;7131:332;;;;;:::o;7469:329::-;7528:6;7577:2;7565:9;7556:7;7552:23;7548:32;7545:119;;;7583:79;;:::i;:::-;7545:119;7703:1;7728:53;7773:7;7764:6;7753:9;7749:22;7728:53;:::i;:::-;7718:63;;7674:117;7469:329;;;;:::o;7804:222::-;7897:4;7935:2;7924:9;7920:18;7912:26;;7948:71;8016:1;8005:9;8001:17;7992:6;7948:71;:::i;:::-;7804:222;;;;:::o;8032:122::-;8105:24;8123:5;8105:24;:::i;:::-;8098:5;8095:35;8085:63;;8144:1;8141;8134:12;8085:63;8032:122;:::o;8160:139::-;8206:5;8244:6;8231:20;8222:29;;8260:33;8287:5;8260:33;:::i;:::-;8160:139;;;;:::o;8305:110::-;8356:7;8385:24;8403:5;8385:24;:::i;:::-;8374:35;;8305:110;;;:::o;8421:150::-;8508:38;8540:5;8508:38;:::i;:::-;8501:5;8498:49;8488:77;;8561:1;8558;8551:12;8488:77;8421:150;:::o;8577:167::-;8637:5;8675:6;8662:20;8653:29;;8691:47;8732:5;8691:47;:::i;:::-;8577:167;;;;:::o;8750:793::-;8850:6;8858;8866;8874;8923:3;8911:9;8902:7;8898:23;8894:33;8891:120;;;8930:79;;:::i;:::-;8891:120;9050:1;9075:53;9120:7;9111:6;9100:9;9096:22;9075:53;:::i;:::-;9065:63;;9021:117;9177:2;9203:53;9248:7;9239:6;9228:9;9224:22;9203:53;:::i;:::-;9193:63;;9148:118;9305:2;9331:53;9376:7;9367:6;9356:9;9352:22;9331:53;:::i;:::-;9321:63;;9276:118;9433:2;9459:67;9518:7;9509:6;9498:9;9494:22;9459:67;:::i;:::-;9449:77;;9404:132;8750:793;;;;;;;:::o;9549:116::-;9619:21;9634:5;9619:21;:::i;:::-;9612:5;9609:32;9599:60;;9655:1;9652;9645:12;9599:60;9549:116;:::o;9671:133::-;9714:5;9752:6;9739:20;9730:29;;9768:30;9792:5;9768:30;:::i;:::-;9671:133;;;;:::o;9810:468::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:50;10253:7;10244:6;10233:9;10229:22;10211:50;:::i;:::-;10201:60;;10156:115;9810:468;;;;;:::o;10284:117::-;10393:1;10390;10383:12;10407:117;10516:1;10513;10506:12;10530:180;10578:77;10575:1;10568:88;10675:4;10672:1;10665:15;10699:4;10696:1;10689:15;10716:281;10799:27;10821:4;10799:27;:::i;:::-;10791:6;10787:40;10929:6;10917:10;10914:22;10893:18;10881:10;10878:34;10875:62;10872:88;;;10940:18;;:::i;:::-;10872:88;10980:10;10976:2;10969:22;10759:238;10716:281;;:::o;11003:129::-;11037:6;11064:20;;:::i;:::-;11054:30;;11093:33;11121:4;11113:6;11093:33;:::i;:::-;11003:129;;;:::o;11138:307::-;11199:4;11289:18;11281:6;11278:30;11275:56;;;11311:18;;:::i;:::-;11275:56;11349:29;11371:6;11349:29;:::i;:::-;11341:37;;11433:4;11427;11423:15;11415:23;;11138:307;;;:::o;11451:146::-;11548:6;11543:3;11538;11525:30;11589:1;11580:6;11575:3;11571:16;11564:27;11451:146;;;:::o;11603:423::-;11680:5;11705:65;11721:48;11762:6;11721:48;:::i;:::-;11705:65;:::i;:::-;11696:74;;11793:6;11786:5;11779:21;11831:4;11824:5;11820:16;11869:3;11860:6;11855:3;11851:16;11848:25;11845:112;;;11876:79;;:::i;:::-;11845:112;11966:54;12013:6;12008:3;12003;11966:54;:::i;:::-;11686:340;11603:423;;;;;:::o;12045:338::-;12100:5;12149:3;12142:4;12134:6;12130:17;12126:27;12116:122;;12157:79;;:::i;:::-;12116:122;12274:6;12261:20;12299:78;12373:3;12365:6;12358:4;12350:6;12346:17;12299:78;:::i;:::-;12290:87;;12106:277;12045:338;;;;:::o;12389:943::-;12484:6;12492;12500;12508;12557:3;12545:9;12536:7;12532:23;12528:33;12525:120;;;12564:79;;:::i;:::-;12525:120;12684:1;12709:53;12754:7;12745:6;12734:9;12730:22;12709:53;:::i;:::-;12699:63;;12655:117;12811:2;12837:53;12882:7;12873:6;12862:9;12858:22;12837:53;:::i;:::-;12827:63;;12782:118;12939:2;12965:53;13010:7;13001:6;12990:9;12986:22;12965:53;:::i;:::-;12955:63;;12910:118;13095:2;13084:9;13080:18;13067:32;13126:18;13118:6;13115:30;13112:117;;;13148:79;;:::i;:::-;13112:117;13253:62;13307:7;13298:6;13287:9;13283:22;13253:62;:::i;:::-;13243:72;;13038:287;12389:943;;;;;;;:::o;13338:474::-;13406:6;13414;13463:2;13451:9;13442:7;13438:23;13434:32;13431:119;;;13469:79;;:::i;:::-;13431:119;13589:1;13614:53;13659:7;13650:6;13639:9;13635:22;13614:53;:::i;:::-;13604:63;;13560:117;13716:2;13742:53;13787:7;13778:6;13767:9;13763:22;13742:53;:::i;:::-;13732:63;;13687:118;13338:474;;;;;:::o;13818:::-;13886:6;13894;13943:2;13931:9;13922:7;13918:23;13914:32;13911:119;;;13949:79;;:::i;:::-;13911:119;14069:1;14094:53;14139:7;14130:6;14119:9;14115:22;14094:53;:::i;:::-;14084:63;;14040:117;14196:2;14222:53;14267:7;14258:6;14247:9;14243:22;14222:53;:::i;:::-;14212:63;;14167:118;13818:474;;;;;:::o;14298:180::-;14346:77;14343:1;14336:88;14443:4;14440:1;14433:15;14467:4;14464:1;14457:15;14484:320;14528:6;14565:1;14559:4;14555:12;14545:22;;14612:1;14606:4;14602:12;14633:18;14623:81;;14689:4;14681:6;14677:17;14667:27;;14623:81;14751:2;14743:6;14740:14;14720:18;14717:38;14714:84;;14770:18;;:::i;:::-;14714:84;14535:269;14484:320;;;:::o;14810:220::-;14950:34;14946:1;14938:6;14934:14;14927:58;15019:3;15014:2;15006:6;15002:15;14995:28;14810:220;:::o;15036:366::-;15178:3;15199:67;15263:2;15258:3;15199:67;:::i;:::-;15192:74;;15275:93;15364:3;15275:93;:::i;:::-;15393:2;15388:3;15384:12;15377:19;;15036:366;;;:::o;15408:419::-;15574:4;15612:2;15601:9;15597:18;15589:26;;15661:9;15655:4;15651:20;15647:1;15636:9;15632:17;15625:47;15689:131;15815:4;15689:131;:::i;:::-;15681:139;;15408:419;;;:::o;15833:248::-;15973:34;15969:1;15961:6;15957:14;15950:58;16042:31;16037:2;16029:6;16025:15;16018:56;15833:248;:::o;16087:366::-;16229:3;16250:67;16314:2;16309:3;16250:67;:::i;:::-;16243:74;;16326:93;16415:3;16326:93;:::i;:::-;16444:2;16439:3;16435:12;16428:19;;16087:366;;;:::o;16459:419::-;16625:4;16663:2;16652:9;16648:18;16640:26;;16712:9;16706:4;16702:20;16698:1;16687:9;16683:17;16676:47;16740:131;16866:4;16740:131;:::i;:::-;16732:139;;16459:419;;;:::o;16884:232::-;17024:34;17020:1;17012:6;17008:14;17001:58;17093:15;17088:2;17080:6;17076:15;17069:40;16884:232;:::o;17122:366::-;17264:3;17285:67;17349:2;17344:3;17285:67;:::i;:::-;17278:74;;17361:93;17450:3;17361:93;:::i;:::-;17479:2;17474:3;17470:12;17463:19;;17122:366;;;:::o;17494:419::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17494:419;;;:::o;17919:175::-;18059:27;18055:1;18047:6;18043:14;18036:51;17919:175;:::o;18100:366::-;18242:3;18263:67;18327:2;18322:3;18263:67;:::i;:::-;18256:74;;18339:93;18428:3;18339:93;:::i;:::-;18457:2;18452:3;18448:12;18441:19;;18100:366;;;:::o;18472:419::-;18638:4;18676:2;18665:9;18661:18;18653:26;;18725:9;18719:4;18715:20;18711:1;18700:9;18696:17;18689:47;18753:131;18879:4;18753:131;:::i;:::-;18745:139;;18472:419;;;:::o;18897:166::-;19037:18;19033:1;19025:6;19021:14;19014:42;18897:166;:::o;19069:366::-;19211:3;19232:67;19296:2;19291:3;19232:67;:::i;:::-;19225:74;;19308:93;19397:3;19308:93;:::i;:::-;19426:2;19421:3;19417:12;19410:19;;19069:366;;;:::o;19441:419::-;19607:4;19645:2;19634:9;19630:18;19622:26;;19694:9;19688:4;19684:20;19680:1;19669:9;19665:17;19658:47;19722:131;19848:4;19722:131;:::i;:::-;19714:139;;19441:419;;;:::o;19866:176::-;20006:28;20002:1;19994:6;19990:14;19983:52;19866:176;:::o;20048:366::-;20190:3;20211:67;20275:2;20270:3;20211:67;:::i;:::-;20204:74;;20287:93;20376:3;20287:93;:::i;:::-;20405:2;20400:3;20396:12;20389:19;;20048:366;;;:::o;20420:419::-;20586:4;20624:2;20613:9;20609:18;20601:26;;20673:9;20667:4;20663:20;20659:1;20648:9;20644:17;20637:47;20701:131;20827:4;20701:131;:::i;:::-;20693:139;;20420:419;;;:::o;20845:180::-;20893:77;20890:1;20883:88;20990:4;20987:1;20980:15;21014:4;21011:1;21004:15;21031:191;21071:3;21090:20;21108:1;21090:20;:::i;:::-;21085:25;;21124:20;21142:1;21124:20;:::i;:::-;21119:25;;21167:1;21164;21160:9;21153:16;;21188:3;21185:1;21182:10;21179:36;;;21195:18;;:::i;:::-;21179:36;21031:191;;;;:::o;21228:174::-;21368:26;21364:1;21356:6;21352:14;21345:50;21228:174;:::o;21408:366::-;21550:3;21571:67;21635:2;21630:3;21571:67;:::i;:::-;21564:74;;21647:93;21736:3;21647:93;:::i;:::-;21765:2;21760:3;21756:12;21749:19;;21408:366;;;:::o;21780:419::-;21946:4;21984:2;21973:9;21969:18;21961:26;;22033:9;22027:4;22023:20;22019:1;22008:9;22004:17;21997:47;22061:131;22187:4;22061:131;:::i;:::-;22053:139;;21780:419;;;:::o;22205:228::-;22345:34;22341:1;22333:6;22329:14;22322:58;22414:11;22409:2;22401:6;22397:15;22390:36;22205:228;:::o;22439:366::-;22581:3;22602:67;22666:2;22661:3;22602:67;:::i;:::-;22595:74;;22678:93;22767:3;22678:93;:::i;:::-;22796:2;22791:3;22787:12;22780:19;;22439:366;;;:::o;22811:419::-;22977:4;23015:2;23004:9;23000:18;22992:26;;23064:9;23058:4;23054:20;23050:1;23039:9;23035:17;23028:47;23092:131;23218:4;23092:131;:::i;:::-;23084:139;;22811:419;;;:::o;23236:172::-;23376:24;23372:1;23364:6;23360:14;23353:48;23236:172;:::o;23414:366::-;23556:3;23577:67;23641:2;23636:3;23577:67;:::i;:::-;23570:74;;23653:93;23742:3;23653:93;:::i;:::-;23771:2;23766:3;23762:12;23755:19;;23414:366;;;:::o;23786:419::-;23952:4;23990:2;23979:9;23975:18;23967:26;;24039:9;24033:4;24029:20;24025:1;24014:9;24010:17;24003:47;24067:131;24193:4;24067:131;:::i;:::-;24059:139;;23786:419;;;:::o;24211:175::-;24351:27;24347:1;24339:6;24335:14;24328:51;24211:175;:::o;24392:366::-;24534:3;24555:67;24619:2;24614:3;24555:67;:::i;:::-;24548:74;;24631:93;24720:3;24631:93;:::i;:::-;24749:2;24744:3;24740:12;24733:19;;24392:366;;;:::o;24764:419::-;24930:4;24968:2;24957:9;24953:18;24945:26;;25017:9;25011:4;25007:20;25003:1;24992:9;24988:17;24981:47;25045:131;25171:4;25045:131;:::i;:::-;25037:139;;24764:419;;;:::o;25189:233::-;25228:3;25251:24;25269:5;25251:24;:::i;:::-;25242:33;;25297:66;25290:5;25287:77;25284:103;;25367:18;;:::i;:::-;25284:103;25414:1;25407:5;25403:13;25396:20;;25189:233;;;:::o;25428:194::-;25468:4;25488:20;25506:1;25488:20;:::i;:::-;25483:25;;25522:20;25540:1;25522:20;:::i;:::-;25517:25;;25566:1;25563;25559:9;25551:17;;25590:1;25584:4;25581:11;25578:37;;;25595:18;;:::i;:::-;25578:37;25428:194;;;;:::o;25628:148::-;25730:11;25767:3;25752:18;;25628:148;;;;:::o;25782:390::-;25888:3;25916:39;25949:5;25916:39;:::i;:::-;25971:89;26053:6;26048:3;25971:89;:::i;:::-;25964:96;;26069:65;26127:6;26122:3;26115:4;26108:5;26104:16;26069:65;:::i;:::-;26159:6;26154:3;26150:16;26143:23;;25892:280;25782:390;;;;:::o;26178:435::-;26358:3;26380:95;26471:3;26462:6;26380:95;:::i;:::-;26373:102;;26492:95;26583:3;26574:6;26492:95;:::i;:::-;26485:102;;26604:3;26597:10;;26178:435;;;;;:::o;26619:224::-;26759:34;26755:1;26747:6;26743:14;26736:58;26828:7;26823:2;26815:6;26811:15;26804:32;26619:224;:::o;26849:366::-;26991:3;27012:67;27076:2;27071:3;27012:67;:::i;:::-;27005:74;;27088:93;27177:3;27088:93;:::i;:::-;27206:2;27201:3;27197:12;27190:19;;26849:366;;;:::o;27221:419::-;27387:4;27425:2;27414:9;27410:18;27402:26;;27474:9;27468:4;27464:20;27460:1;27449:9;27445:17;27438:47;27502:131;27628:4;27502:131;:::i;:::-;27494:139;;27221:419;;;:::o;27646:223::-;27786:34;27782:1;27774:6;27770:14;27763:58;27855:6;27850:2;27842:6;27838:15;27831:31;27646:223;:::o;27875:366::-;28017:3;28038:67;28102:2;28097:3;28038:67;:::i;:::-;28031:74;;28114:93;28203:3;28114:93;:::i;:::-;28232:2;28227:3;28223:12;28216:19;;27875:366;;;:::o;28247:419::-;28413:4;28451:2;28440:9;28436:18;28428:26;;28500:9;28494:4;28490:20;28486:1;28475:9;28471:17;28464:47;28528:131;28654:4;28528:131;:::i;:::-;28520:139;;28247:419;;;:::o;28672:332::-;28793:4;28831:2;28820:9;28816:18;28808:26;;28844:71;28912:1;28901:9;28897:17;28888:6;28844:71;:::i;:::-;28925:72;28993:2;28982:9;28978:18;28969:6;28925:72;:::i;:::-;28672:332;;;;;:::o;29010:182::-;29150:34;29146:1;29138:6;29134:14;29127:58;29010:182;:::o;29198:366::-;29340:3;29361:67;29425:2;29420:3;29361:67;:::i;:::-;29354:74;;29437:93;29526:3;29437:93;:::i;:::-;29555:2;29550:3;29546:12;29539:19;;29198:366;;;:::o;29570:419::-;29736:4;29774:2;29763:9;29759:18;29751:26;;29823:9;29817:4;29813:20;29809:1;29798:9;29794:17;29787:47;29851:131;29977:4;29851:131;:::i;:::-;29843:139;;29570:419;;;:::o;29995:178::-;30135:30;30131:1;30123:6;30119:14;30112:54;29995:178;:::o;30179:366::-;30321:3;30342:67;30406:2;30401:3;30342:67;:::i;:::-;30335:74;;30418:93;30507:3;30418:93;:::i;:::-;30536:2;30531:3;30527:12;30520:19;;30179:366;;;:::o;30551:419::-;30717:4;30755:2;30744:9;30740:18;30732:26;;30804:9;30798:4;30794:20;30790:1;30779:9;30775:17;30768:47;30832:131;30958:4;30832:131;:::i;:::-;30824:139;;30551:419;;;:::o;30976:442::-;31125:4;31163:2;31152:9;31148:18;31140:26;;31176:71;31244:1;31233:9;31229:17;31220:6;31176:71;:::i;:::-;31257:72;31325:2;31314:9;31310:18;31301:6;31257:72;:::i;:::-;31339;31407:2;31396:9;31392:18;31383:6;31339:72;:::i;:::-;30976:442;;;;;;:::o;31424:175::-;31564:27;31560:1;31552:6;31548:14;31541:51;31424:175;:::o;31605:366::-;31747:3;31768:67;31832:2;31827:3;31768:67;:::i;:::-;31761:74;;31844:93;31933:3;31844:93;:::i;:::-;31962:2;31957:3;31953:12;31946:19;;31605:366;;;:::o;31977:419::-;32143:4;32181:2;32170:9;32166:18;32158:26;;32230:9;32224:4;32220:20;32216:1;32205:9;32201:17;32194:47;32258:131;32384:4;32258:131;:::i;:::-;32250:139;;31977:419;;;:::o;32402:237::-;32542:34;32538:1;32530:6;32526:14;32519:58;32611:20;32606:2;32598:6;32594:15;32587:45;32402:237;:::o;32645:366::-;32787:3;32808:67;32872:2;32867:3;32808:67;:::i;:::-;32801:74;;32884:93;32973:3;32884:93;:::i;:::-;33002:2;32997:3;32993:12;32986:19;;32645:366;;;:::o;33017:419::-;33183:4;33221:2;33210:9;33206:18;33198:26;;33270:9;33264:4;33260:20;33256:1;33245:9;33241:17;33234:47;33298:131;33424:4;33298:131;:::i;:::-;33290:139;;33017:419;;;:::o;33442:180::-;33490:77;33487:1;33480:88;33587:4;33584:1;33577:15;33611:4;33608:1;33601:15;33628:137;33682:5;33713:6;33707:13;33698:22;;33729:30;33753:5;33729:30;:::i;:::-;33628:137;;;;:::o;33771:345::-;33838:6;33887:2;33875:9;33866:7;33862:23;33858:32;33855:119;;;33893:79;;:::i;:::-;33855:119;34013:1;34038:61;34091:7;34082:6;34071:9;34067:22;34038:61;:::i;:::-;34028:71;;33984:125;33771:345;;;;:::o;34122:229::-;34262:34;34258:1;34250:6;34246:14;34239:58;34331:12;34326:2;34318:6;34314:15;34307:37;34122:229;:::o;34357:366::-;34499:3;34520:67;34584:2;34579:3;34520:67;:::i;:::-;34513:74;;34596:93;34685:3;34596:93;:::i;:::-;34714:2;34709:3;34705:12;34698:19;;34357:366;;;:::o;34729:419::-;34895:4;34933:2;34922:9;34918:18;34910:26;;34982:9;34976:4;34972:20;34968:1;34957:9;34953:17;34946:47;35010:131;35136:4;35010:131;:::i;:::-;35002:139;;34729:419;;;:::o;35154:98::-;35205:6;35239:5;35233:12;35223:22;;35154:98;;;:::o;35258:168::-;35341:11;35375:6;35370:3;35363:19;35415:4;35410:3;35406:14;35391:29;;35258:168;;;;:::o;35432:373::-;35518:3;35546:38;35578:5;35546:38;:::i;:::-;35600:70;35663:6;35658:3;35600:70;:::i;:::-;35593:77;;35679:65;35737:6;35732:3;35725:4;35718:5;35714:16;35679:65;:::i;:::-;35769:29;35791:6;35769:29;:::i;:::-;35764:3;35760:39;35753:46;;35522:283;35432:373;;;;:::o;35811:640::-;36006:4;36044:3;36033:9;36029:19;36021:27;;36058:71;36126:1;36115:9;36111:17;36102:6;36058:71;:::i;:::-;36139:72;36207:2;36196:9;36192:18;36183:6;36139:72;:::i;:::-;36221;36289:2;36278:9;36274:18;36265:6;36221:72;:::i;:::-;36340:9;36334:4;36330:20;36325:2;36314:9;36310:18;36303:48;36368:76;36439:4;36430:6;36368:76;:::i;:::-;36360:84;;35811:640;;;;;;;:::o;36457:141::-;36513:5;36544:6;36538:13;36529:22;;36560:32;36586:5;36560:32;:::i;:::-;36457:141;;;;:::o;36604:349::-;36673:6;36722:2;36710:9;36701:7;36697:23;36693:32;36690:119;;;36728:79;;:::i;:::-;36690:119;36848:1;36873:63;36928:7;36919:6;36908:9;36904:22;36873:63;:::i;:::-;36863:73;;36819:127;36604:349;;;;:::o;36959:225::-;37099:34;37095:1;37087:6;37083:14;37076:58;37168:8;37163:2;37155:6;37151:15;37144:33;36959:225;:::o;37190:366::-;37332:3;37353:67;37417:2;37412:3;37353:67;:::i;:::-;37346:74;;37429:93;37518:3;37429:93;:::i;:::-;37547:2;37542:3;37538:12;37531:19;;37190:366;;;:::o;37562:419::-;37728:4;37766:2;37755:9;37751:18;37743:26;;37815:9;37809:4;37805:20;37801:1;37790:9;37786:17;37779:47;37843:131;37969:4;37843:131;:::i;:::-;37835:139;;37562:419;;;:::o;37987:147::-;38088:11;38125:3;38110:18;;37987:147;;;;:::o;38140:386::-;38244:3;38272:38;38304:5;38272:38;:::i;:::-;38326:88;38407:6;38402:3;38326:88;:::i;:::-;38319:95;;38423:65;38481:6;38476:3;38469:4;38462:5;38458:16;38423:65;:::i;:::-;38513:6;38508:3;38504:16;38497:23;;38248:278;38140:386;;;;:::o;38532:271::-;38662:3;38684:93;38773:3;38764:6;38684:93;:::i;:::-;38677:100;;38794:3;38787:10;;38532:271;;;;:::o;38809:179::-;38949:31;38945:1;38937:6;38933:14;38926:55;38809:179;:::o;38994:366::-;39136:3;39157:67;39221:2;39216:3;39157:67;:::i;:::-;39150:74;;39233:93;39322:3;39233:93;:::i;:::-;39351:2;39346:3;39342:12;39335:19;;38994:366;;;:::o;39366:419::-;39532:4;39570:2;39559:9;39555:18;39547:26;;39619:9;39613:4;39609:20;39605:1;39594:9;39590:17;39583:47;39647:131;39773:4;39647:131;:::i;:::-;39639:139;;39366:419;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "create(address,uint256,uint128,address)": "746b5d61", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestDetails(uint256)": "03101bfd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"releaseTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"vestDetails\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"payoutToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endTime\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token.\"},\"create(address,uint256,uint128,address)\":{\"details\":\"Token amount should be approved to be transferred by this contract before executing create\",\"params\":{\"amount\":\"The total assets to be locked over time\",\"releaseTimestamp\":\"When the full amount of tokens get released\",\"to\":\"The recipient of the NFT\",\"token\":\"The ERC20 token to vest over time\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_tokenIdTracker\":{\"details\":\"tracker of current NFT id\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"create(address,uint256,uint128,address)\":{\"notice\":\"Creates a new vesting NFT and mints it\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/reference/VestingNFT.sol\":\"VestingNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]},\"contracts/reference/VestingNFT.sol\":{\"keccak256\":\"0x4461506313cdffc7213eea9d9866008b1001e0019b7ba36ec10eac8c0eb679c3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cdd7b2f4dc580d3807da2e0119655929e010237b3270c6f48e9b48a8b8893c4b\",\"dweb:/ipfs/QmWde2WyRhWcEmSjgbW85eJ6Hu937FH5wXYWfNkmY8CWrQ\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/tasks/20230212-vesting-nft/build-info/VestingNFT.json b/tasks/20230212-vesting-nft/build-info/VestingNFT.json new file mode 100644 index 0000000..ede33fd --- /dev/null +++ b/tasks/20230212-vesting-nft/build-info/VestingNFT.json @@ -0,0 +1,153823 @@ +{ + "id": "bee391d170fede1ef605710a037e4dbf", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.17", + "solcLongVersion": "0.8.17+commit.8df45f5f", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n // decrementing then incrementing.\n _balances[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n unchecked {\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n _balances[account] += amount;\n }\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n // Overflow not possible: amount <= accountBalance <= totalSupply.\n _totalSupply -= amount;\n }\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\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(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _ownerOf(tokenId);\n require(owner != address(0), \"ERC721: invalid token ID\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireMinted(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not token owner or approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n _requireMinted(tokenId);\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n _safeTransfer(from, to, tokenId, data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _ownerOf(tokenId) != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId, 1);\n\n // Check that tokenId was not minted by `_beforeTokenTransfer` hook\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n unchecked {\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\n // Given that tokens are minted one by one, it is impossible in practice that\n // this ever happens. Might change if we allow batch minting.\n // The ERC fails to describe this case.\n _balances[to] += 1;\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId, 1);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n owner = ERC721.ownerOf(tokenId);\n\n // Clear approvals\n delete _tokenApprovals[tokenId];\n\n unchecked {\n // Cannot overflow, as that would require more tokens to be burned/transferred\n // out than the owner initially received through minting and transferring in.\n _balances[owner] -= 1;\n }\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId, 1);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId, 1);\n\n // Check that tokenId was not transferred by `_beforeTokenTransfer` hook\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n\n // Clear approvals from the previous owner\n delete _tokenApprovals[tokenId];\n\n unchecked {\n // `_balances[from]` cannot overflow for the same reason as described in `_burn`:\n // `from`'s balance is the number of token held, which is at least one before the current\n // transfer.\n // `_balances[to]` could overflow in the conditions described in `_mint`. That would require\n // all 2**256 token ids to be minted, which in practice is impossible.\n _balances[from] -= 1;\n _balances[to] += 1;\n }\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId, 1);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` has not been minted yet.\n */\n function _requireMinted(uint256 tokenId) internal view virtual {\n require(_exists(tokenId), \"ERC721: invalid token ID\");\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n * - When `from` is zero, the tokens will be minted for `to`.\n * - When `to` is zero, ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n * - `batchSize` is non-zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 firstTokenId,\n uint256 batchSize\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n * - When `from` is zero, the tokens were minted for `to`.\n * - When `to` is zero, ``from``'s tokens were burned.\n * - `from` and `to` are never both zero.\n * - `batchSize` is non-zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 firstTokenId,\n uint256 batchSize\n ) internal virtual {}\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n * that `ownerOf(tokenId)` is `a`.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\n _balances[account] += amount;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Address.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason or using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\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" + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./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 *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\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 v4.8.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Down, // Toward negative infinity\n Up, // Toward infinity\n Zero // Toward zero\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 up instead\n * of rounding down.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\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 denominator == 0\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n * with further edits by Uniswap Labs also under MIT license.\n */\n function mulDiv(\n uint256 x,\n uint256 y,\n uint256 denominator\n ) 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; // 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 prod0 := mul(x, y)\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 return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n require(denominator > prod1);\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. Always >= 1.\n // See https://cs.stackexchange.com/q/138556/92363.\n\n // Does not overflow because the denominator cannot be zero at this stage in the function.\n uint256 twos = denominator & (~denominator + 1);\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 works\n // 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(\n uint256 x,\n uint256 y,\n uint256 denominator,\n Rounding rounding\n ) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (rounding == Rounding.Up && 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 down.\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 + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2, rounded down, of a positive value.\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 + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10, rounded down, of a positive value.\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 + (rounding == Rounding.Up && 10**result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256, rounded down, of a positive value.\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 10, 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 + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\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), _SYMBOLS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\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 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] = _SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\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 representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n}\n" + }, + "contracts/ERC5725.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"./IERC5725.sol\";\n\nabstract contract ERC5725 is IERC5725, ERC721 {\n using SafeERC20 for IERC20;\n\n /// @dev mapping for claimed payouts\n mapping(uint256 => uint256) /*tokenId*/ /*claimed*/\n internal _payoutClaimed;\n\n /**\n * @notice Checks if the tokenId exists and its valid\n * @param tokenId The NFT token id\n */\n modifier validToken(uint256 tokenId) {\n require(_exists(tokenId), \"ERC5725: invalid token ID\");\n _;\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claim(uint256 tokenId) external override(IERC5725) validToken(tokenId) {\n require(ownerOf(tokenId) == msg.sender, \"Not owner of NFT\");\n uint256 amountClaimed = claimablePayout(tokenId);\n require(amountClaimed > 0, \"ERC5725: No pending payout\");\n\n emit PayoutClaimed(tokenId, msg.sender, amountClaimed);\n\n _payoutClaimed[tokenId] += amountClaimed;\n IERC20(payoutToken(tokenId)).safeTransfer(msg.sender, amountClaimed);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayout(uint256 tokenId) public view override(IERC5725) returns (uint256 payout) {\n return vestedPayoutAtTime(tokenId, block.timestamp);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n virtual\n override(IERC5725)\n returns (uint256 payout);\n\n /**\n * @dev See {IERC5725}.\n */\n function vestingPayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return _payout(tokenId) - vestedPayout(tokenId);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claimablePayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return vestedPayout(tokenId) - _payoutClaimed[tokenId];\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function claimedPayout(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n return _payoutClaimed[tokenId];\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestingPeriod(uint256 tokenId)\n public\n view\n override(IERC5725)\n validToken(tokenId)\n returns (uint256 vestingStart, uint256 vestingEnd)\n {\n return (_startTime(tokenId), _endTime(tokenId));\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function payoutToken(uint256 tokenId) public view override(IERC5725) validToken(tokenId) returns (address token) {\n return _payoutToken(tokenId);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n * IERC5725 interfaceId = 0xd707c82a\n */\n function supportsInterface(bytes4 interfaceId)\n public\n view\n virtual\n override(ERC721, IERC165)\n returns (bool supported)\n {\n return interfaceId == type(IERC5725).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Internal function to get the payout token of a given vesting NFT\n *\n * @param tokenId on which to check the payout token address\n * @return address payout token address\n */\n function _payoutToken(uint256 tokenId) internal view virtual returns (address);\n\n /**\n * @dev Internal function to get the total payout of a given vesting NFT.\n * @dev This is the total that will be paid out to the NFT owner, including historical tokens.\n *\n * @param tokenId to check\n * @return uint256 the total payout of a given vesting NFT\n */\n function _payout(uint256 tokenId) internal view virtual returns (uint256);\n\n /**\n * @dev Internal function to get the start time of a given vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the start time in epoch timestamp\n */\n function _startTime(uint256 tokenId) internal view virtual returns (uint256);\n\n /**\n * @dev Internal function to get the end time of a given vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the end time in epoch timestamp\n */\n function _endTime(uint256 tokenId) internal view virtual returns (uint256);\n}\n" + }, + "contracts/IERC5725.sol": { + "content": "// SPDX-License-Identifier: CC0-1.0\npragma solidity ^0.8.0;\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\n/**\n * @title Non-Fungible Vesting Token Standard\n * @notice A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve\n * scheduled using timestamps.\n * @dev Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the\n * tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT.\n */\ninterface IERC5725 is IERC721 {\n /**\n * This event is emitted when the payout is claimed through the claim function\n * @param tokenId the NFT tokenId of the assets being claimed.\n * @param recipient The address which is receiving the payout.\n * @param claimAmount The amount of tokens being claimed.\n */\n event PayoutClaimed(uint256 indexed tokenId, address indexed recipient, uint256 claimAmount);\n\n /**\n * @notice Claim the pending payout for the NFT\n * @dev MUST grant the claimablePayout value at the time of claim being called\n * MUST revert if not called by the token owner or approved users\n * MUST emit PayoutClaimed\n * SHOULD revert if there is nothing to claim\n * @param tokenId The NFT token id\n */\n function claim(uint256 tokenId) external;\n\n /**\n * @notice Number of tokens for the NFT which have been claimed at the current timestamp\n * @param tokenId The NFT token id\n * @return payout The total amount of payout tokens claimed for this NFT\n */\n function claimedPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Number of tokens for the NFT which can be claimed at the current timestamp\n * @dev It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\n * @param tokenId The NFT token id\n * @return payout The amount of unlocked payout tokens for the NFT which have not yet been claimed\n */\n function claimablePayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Total amount of tokens which have been vested at the current timestamp.\n * This number also includes vested tokens which have been claimed.\n * @dev It is RECOMMENDED that this function calls `vestedPayoutAtTime` with\n * `block.timestamp` as the `timestamp` parameter.\n * @param tokenId The NFT token id\n * @return payout Total amount of tokens which have been vested at the current timestamp.\n */\n function vestedPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice Total amount of vested tokens at the provided timestamp.\n * This number also includes vested tokens which have been claimed.\n * @dev `timestamp` MAY be both in the future and in the past.\n * Zero MUST be returned if the timestamp is before the token was minted.\n * @param tokenId The NFT token id\n * @param timestamp The timestamp to check on, can be both in the past and the future\n * @return payout Total amount of tokens which have been vested at the provided timestamp\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp) external view returns (uint256 payout);\n\n /**\n * @notice Number of tokens for an NFT which are currently vesting.\n * @dev The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\n * @param tokenId The NFT token id\n * @return payout The number of tokens for the NFT which are vesting until a future date.\n */\n function vestingPayout(uint256 tokenId) external view returns (uint256 payout);\n\n /**\n * @notice The start and end timestamps for the vesting of the provided NFT\n * MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\n * @param tokenId The NFT token id\n * @return vestingStart The beginning of the vesting as a unix timestamp\n * @return vestingEnd The ending of the vesting as a unix timestamp\n */\n function vestingPeriod(uint256 tokenId) external view returns (uint256 vestingStart, uint256 vestingEnd);\n\n /**\n * @notice Token which is used to pay out the vesting claims\n * @param tokenId The NFT token id\n * @return token The token which is used to pay out the vesting claims\n */\n function payoutToken(uint256 tokenId) external view returns (address token);\n}\n" + }, + "contracts/mocks/ERC20Mock.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.17;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract ERC20Mock is ERC20 {\n uint8 private _decimals;\n\n constructor(\n uint256 supply_,\n uint8 decimals_,\n string memory name_,\n string memory symbol_\n ) ERC20(name_, symbol_) {\n _mint(msg.sender, supply_);\n _decimals = decimals_;\n }\n\n function mint(uint256 amount, address to) public {\n _mint(to, amount);\n }\n\n function decimals() public view virtual override returns (uint8) {\n return _decimals;\n }\n}\n" + }, + "contracts/reference/LinearVestingNFT.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"../ERC5725.sol\";\n\ncontract LinearVestingNFT is ERC5725 {\n using SafeERC20 for IERC20;\n\n struct VestDetails {\n IERC20 payoutToken; /// @dev payout token\n uint256 payout; /// @dev payout token remaining to be paid\n uint128 startTime; /// @dev when vesting starts\n uint128 endTime; /// @dev when vesting end\n uint128 cliff; /// @dev duration in seconds of the cliff in which tokens will be begin releasing\n }\n mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds\n\n /// @dev tracker of current NFT id\n uint256 private _tokenIdTracker;\n\n /**\n * @dev See {IERC5725}.\n */\n constructor(string memory name, string memory symbol) ERC721(name, symbol) {}\n\n /**\n * @notice Creates a new vesting NFT and mints it\n * @dev Token amount should be approved to be transferred by this contract before executing create\n * @param to The recipient of the NFT\n * @param amount The total assets to be locked over time\n * @param startTime When the vesting starts in epoch timestamp\n * @param duration The vesting duration in seconds\n * @param cliff The cliff duration in seconds\n * @param token The ERC20 token to vest over time\n */\n function create(\n address to,\n uint256 amount,\n uint128 startTime,\n uint128 duration,\n uint128 cliff,\n IERC20 token\n ) public virtual {\n require(startTime >= block.timestamp, \"startTime cannot be on the past\");\n require(to != address(0), \"to cannot be address 0\");\n require(cliff <= duration, \"duration needs to be more than cliff\");\n\n uint256 newTokenId = _tokenIdTracker;\n\n vestDetails[newTokenId] = VestDetails({\n payoutToken: token,\n payout: amount,\n startTime: startTime,\n endTime: startTime + duration,\n cliff: startTime + cliff\n });\n\n _tokenIdTracker++;\n _mint(to, newTokenId);\n IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n override(ERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n if (timestamp < _cliff(tokenId)) {\n return 0;\n }\n if (timestamp > _endTime(tokenId)) {\n return _payout(tokenId);\n }\n return (_payout(tokenId) * (timestamp - _startTime(tokenId))) / (_endTime(tokenId) - _startTime(tokenId));\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payoutToken(uint256 tokenId) internal view override returns (address) {\n return address(vestDetails[tokenId].payoutToken);\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payout(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].payout;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _startTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].startTime;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _endTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].endTime;\n }\n\n /**\n * @dev Internal function to get the cliff time of a given linear vesting NFT\n *\n * @param tokenId to check\n * @return uint256 the cliff time in seconds\n */\n function _cliff(uint256 tokenId) internal view returns (uint256) {\n return vestDetails[tokenId].cliff;\n }\n}\n" + }, + "contracts/reference/VestingNFT.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.17;\n\nimport \"../ERC5725.sol\";\n\ncontract VestingNFT is ERC5725 {\n using SafeERC20 for IERC20;\n\n struct VestDetails {\n IERC20 payoutToken; /// @dev payout token\n uint256 payout; /// @dev payout token remaining to be paid\n uint128 startTime; /// @dev when vesting starts\n uint128 endTime; /// @dev when vesting end\n }\n mapping(uint256 => VestDetails) public vestDetails; /// @dev maps the vesting data with tokenIds\n\n /// @dev tracker of current NFT id\n uint256 private _tokenIdTracker;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token.\n */\n constructor(string memory name, string memory symbol) ERC721(name, symbol) {}\n\n /**\n * @notice Creates a new vesting NFT and mints it\n * @dev Token amount should be approved to be transferred by this contract before executing create\n * @param to The recipient of the NFT\n * @param amount The total assets to be locked over time\n * @param releaseTimestamp When the full amount of tokens get released\n * @param token The ERC20 token to vest over time\n */\n function create(\n address to,\n uint256 amount,\n uint128 releaseTimestamp,\n IERC20 token\n ) public virtual {\n require(to != address(0), \"to cannot be address 0\");\n require(releaseTimestamp > block.timestamp, \"release must be in future\");\n\n uint256 newTokenId = _tokenIdTracker;\n\n vestDetails[newTokenId] = VestDetails({\n payoutToken: token,\n payout: amount,\n startTime: uint128(block.timestamp),\n endTime: releaseTimestamp\n });\n\n _tokenIdTracker++;\n _mint(to, newTokenId);\n IERC20(payoutToken(newTokenId)).safeTransferFrom(msg.sender, address(this), amount);\n }\n\n /**\n * @dev See {IERC5725}.\n */\n function vestedPayoutAtTime(uint256 tokenId, uint256 timestamp)\n public\n view\n override(ERC5725)\n validToken(tokenId)\n returns (uint256 payout)\n {\n if (timestamp >= _endTime(tokenId)) {\n return _payout(tokenId);\n }\n return 0;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payoutToken(uint256 tokenId) internal view override returns (address) {\n return address(vestDetails[tokenId].payoutToken);\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _payout(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].payout;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _startTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].startTime;\n }\n\n /**\n * @dev See {ERC5725}.\n */\n function _endTime(uint256 tokenId) internal view override returns (uint256) {\n return vestDetails[tokenId].endTime;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "Ownable": [ + 112 + ] + }, + "id": 113, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "102:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 113, + "sourceUnit": 2560, + "src": "127:30:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4, + "name": "Context", + "nameLocations": [ + "683:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "683:7:0" + }, + "id": 5, + "nodeType": "InheritanceSpecifier", + "src": "683:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "159:494:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 112, + "linearizedBaseContracts": [ + 112, + 2559 + ], + "name": "Ownable", + "nameLocation": "672:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "713:6:0", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "697:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 13, + "name": "OwnershipTransferred", + "nameLocation": "732:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "769:13:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "753:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "800:8:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "784:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "752:57:0" + }, + "src": "726:84:0" + }, + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "926:49:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "955:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "955:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "936:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "936:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "936:32:0" + } + ] + }, + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "816:91:0", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "id": 23, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [], + "src": "923:2:0" + }, + "returnParameters": { + "id": 16, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:0:0" + }, + "scope": 112, + "src": "912:63:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 30, + "nodeType": "Block", + "src": "1084:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 26, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "1094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1094:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28, + "nodeType": "ExpressionStatement", + "src": "1094:13:0" + }, + { + "id": 29, + "nodeType": "PlaceholderStatement", + "src": "1117:1:0" + } + ] + }, + "documentation": { + "id": 24, + "nodeType": "StructuredDocumentation", + "src": "981:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 31, + "name": "onlyOwner", + "nameLocation": "1072:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "1081:2:0" + }, + "src": "1063:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 39, + "nodeType": "Block", + "src": "1256:30:0", + "statements": [ + { + "expression": { + "id": 37, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1273:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 36, + "id": 38, + "nodeType": "Return", + "src": "1266:13:0" + } + ] + }, + "documentation": { + "id": 32, + "nodeType": "StructuredDocumentation", + "src": "1131:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 40, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1210:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "1215:2:0" + }, + "returnParameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "1247:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1247:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1246:9:0" + }, + "scope": 112, + "src": "1201:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 53, + "nodeType": "Block", + "src": "1404:85:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1422:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1422:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 47, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "1433:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1433:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1422:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1447:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 44, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1414:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1414:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 52, + "nodeType": "ExpressionStatement", + "src": "1414:68:0" + } + ] + }, + "documentation": { + "id": 41, + "nodeType": "StructuredDocumentation", + "src": "1292:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 54, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1368:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 42, + "nodeType": "ParameterList", + "parameters": [], + "src": "1379:2:0" + }, + "returnParameters": { + "id": 43, + "nodeType": "ParameterList", + "parameters": [], + "src": "1404:0:0" + }, + "scope": 112, + "src": "1359:130:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 67, + "nodeType": "Block", + "src": "1885:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1922:1:0", + "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": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:0", + "typeDescriptions": {} + } + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1914:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 60, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "1895:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1895:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 66, + "nodeType": "ExpressionStatement", + "src": "1895:30:0" + } + ] + }, + "documentation": { + "id": 55, + "nodeType": "StructuredDocumentation", + "src": "1495:331:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 68, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 58, + "kind": "modifierInvocation", + "modifierName": { + "id": 57, + "name": "onlyOwner", + "nameLocations": [ + "1875:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "1875:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1875:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "1840:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [], + "src": "1857:2:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [], + "src": "1885:0:0" + }, + "scope": 112, + "src": "1831:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 90, + "nodeType": "Block", + "src": "2151:128:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 77, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "2169:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2189:1:0", + "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": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2181:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2181:7:0", + "typeDescriptions": {} + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2181:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2169:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:40:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 76, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2161:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 85, + "nodeType": "ExpressionStatement", + "src": "2161:73:0" + }, + { + "expression": { + "arguments": [ + { + "id": 87, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "2263:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 86, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2244:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2244:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 89, + "nodeType": "ExpressionStatement", + "src": "2244:28:0" + } + ] + }, + "documentation": { + "id": 69, + "nodeType": "StructuredDocumentation", + "src": "1938:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 91, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 74, + "kind": "modifierInvocation", + "modifierName": { + "id": 73, + "name": "onlyOwner", + "nameLocations": [ + "2141:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "2141:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2141:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2090:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2116:8:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "2108:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2107:18:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [], + "src": "2151:0:0" + }, + "scope": 112, + "src": "2081:198:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 110, + "nodeType": "Block", + "src": "2496:124:0", + "statements": [ + { + "assignments": [ + 98 + ], + "declarations": [ + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2514:8:0", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "2506:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2506:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 100, + "initialValue": { + "id": 99, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2525:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2506:25:0" + }, + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 101, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "2541:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "2550:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2541:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "2541:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 106, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "2594:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 107, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "2604:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 105, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "2573:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 109, + "nodeType": "EmitStatement", + "src": "2568:45:0" + } + ] + }, + "documentation": { + "id": 92, + "nodeType": "StructuredDocumentation", + "src": "2285:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2442:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2469:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "2461:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 93, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2461:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2460:18:0" + }, + "returnParameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [], + "src": "2496:0:0" + }, + "scope": 112, + "src": "2433:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 113, + "src": "654:1968:0", + "usedErrors": [] + } + ], + "src": "102:2521:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "ERC20": [ + 699 + ], + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 700, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 114, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "105:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 115, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 778, + "src": "130:22:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 116, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 803, + "src": "153:41:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 117, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 700, + "sourceUnit": 2560, + "src": "195:33:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 119, + "name": "Context", + "nameLocations": [ + "1419:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "1419:7:1" + }, + "id": 120, + "nodeType": "InheritanceSpecifier", + "src": "1419:7:1" + }, + { + "baseName": { + "id": 121, + "name": "IERC20", + "nameLocations": [ + "1428:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1428:6:1" + }, + "id": 122, + "nodeType": "InheritanceSpecifier", + "src": "1428:6:1" + }, + { + "baseName": { + "id": 123, + "name": "IERC20Metadata", + "nameLocations": [ + "1436:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 802, + "src": "1436:14:1" + }, + "id": 124, + "nodeType": "InheritanceSpecifier", + "src": "1436:14:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 118, + "nodeType": "StructuredDocumentation", + "src": "230:1170:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." + }, + "fullyImplemented": true, + "id": 699, + "linearizedBaseContracts": [ + 699, + 802, + 777, + 2559 + ], + "name": "ERC20", + "nameLocation": "1410:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1493:9:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1457:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 127, + "keyType": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1457:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1476:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 134, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1565:11:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1509:67:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 133, + "keyType": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1509:47:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 132, + "keyType": { + "id": 130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1528:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1599:12:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1583:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1583:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1633:5:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1618:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 137, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 140, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1659:7:1", + "nodeType": "VariableDeclaration", + "scope": 699, + "src": "1644:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 139, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1644:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 156, + "nodeType": "Block", + "src": "2032:57:1", + "statements": [ + { + "expression": { + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 148, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2042:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 149, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "2050:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2042:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "2042:13:1" + }, + { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 152, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "2065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 153, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 145, + "src": "2075:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2065:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2065:17:1" + } + ] + }, + "documentation": { + "id": 141, + "nodeType": "StructuredDocumentation", + "src": "1673:298:1", + "text": " @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 157, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "name_", + "nameLocation": "2002:5:1", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "1988:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 142, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1988:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "2023:7:1", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2009:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 144, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2009:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1987:44:1" + }, + "returnParameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [], + "src": "2032:0:1" + }, + "scope": 699, + "src": "1976:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 789 + ], + "body": { + "id": 166, + "nodeType": "Block", + "src": "2223:29:1", + "statements": [ + { + "expression": { + "id": 164, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2240:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 163, + "id": 165, + "nodeType": "Return", + "src": "2233:12:1" + } + ] + }, + "documentation": { + "id": 158, + "nodeType": "StructuredDocumentation", + "src": "2095:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 167, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2163:4:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 160, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2190:8:1" + }, + "parameters": { + "id": 159, + "nodeType": "ParameterList", + "parameters": [], + "src": "2167:2:1" + }, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "2208:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 161, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2208:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2207:15:1" + }, + "scope": 699, + "src": "2154:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 795 + ], + "body": { + "id": 176, + "nodeType": "Block", + "src": "2436:31:1", + "statements": [ + { + "expression": { + "id": 174, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "2453:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 173, + "id": 175, + "nodeType": "Return", + "src": "2446:14:1" + } + ] + }, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "2258:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2374:6:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 170, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2403:8:1" + }, + "parameters": { + "id": 169, + "nodeType": "ParameterList", + "parameters": [], + "src": "2380:2:1" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 177, + "src": "2421:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 171, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2421:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2420:15:1" + }, + "scope": 699, + "src": "2365:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 801 + ], + "body": { + "id": 186, + "nodeType": "Block", + "src": "3156:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3173:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 183, + "id": 185, + "nodeType": "Return", + "src": "3166:9:1" + } + ] + }, + "documentation": { + "id": 178, + "nodeType": "StructuredDocumentation", + "src": "2473:613:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3100:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 180, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3131:8:1" + }, + "parameters": { + "id": 179, + "nodeType": "ParameterList", + "parameters": [], + "src": "3108:2:1" + }, + "returnParameters": { + "id": 183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3149:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 181, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3148:7:1" + }, + "scope": 699, + "src": "3091:91:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 726 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "3312:36:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "3329:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "3322:19:1" + } + ] + }, + "documentation": { + "id": 188, + "nodeType": "StructuredDocumentation", + "src": "3188:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "3251:11:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 190, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3285:8:1" + }, + "parameters": { + "id": 189, + "nodeType": "ParameterList", + "parameters": [], + "src": "3262:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "3303:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3303:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3302:9:1" + }, + "scope": 699, + "src": "3242:106:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 734 + ], + "body": { + "id": 210, + "nodeType": "Block", + "src": "3489:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 206, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "3506:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 208, + "indexExpression": { + "id": 207, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3506:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 205, + "id": 209, + "nodeType": "Return", + "src": "3499:25:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "3354:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3415:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 202, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3462:8:1" + }, + "parameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "account", + "nameLocation": "3433:7:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3425:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 199, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3425:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3424:17:1" + }, + "returnParameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3480:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3480:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3479:9:1" + }, + "scope": 699, + "src": "3406:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 744 + ], + "body": { + "id": 235, + "nodeType": "Block", + "src": "3812:104:1", + "statements": [ + { + "assignments": [ + 223 + ], + "declarations": [ + { + "constant": false, + "id": 223, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3830:5:1", + "nodeType": "VariableDeclaration", + "scope": 235, + "src": "3822:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3822:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 226, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 224, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3838:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3838:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3822:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 228, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 223, + "src": "3870:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 229, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "3877:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 230, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "3881:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 227, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 459, + "src": "3860:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3860:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 232, + "nodeType": "ExpressionStatement", + "src": "3860:28:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3905:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 221, + "id": 234, + "nodeType": "Return", + "src": "3898:11:1" + } + ] + }, + "documentation": { + "id": 212, + "nodeType": "StructuredDocumentation", + "src": "3537:185:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." + }, + "functionSelector": "a9059cbb", + "id": 236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3736:8:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 218, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3788:8:1" + }, + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "to", + "nameLocation": "3753:2:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 216, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3765:6:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3757:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3744:28:1" + }, + "returnParameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "3806:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3806:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3805:6:1" + }, + "scope": 699, + "src": "3727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 253, + "nodeType": "Block", + "src": "4072:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 247, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "4089:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 249, + "indexExpression": { + "id": 248, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "4101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4089:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 251, + "indexExpression": { + "id": 250, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "4108:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4089:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 246, + "id": 252, + "nodeType": "Return", + "src": "4082:34:1" + } + ] + }, + "documentation": { + "id": 237, + "nodeType": "StructuredDocumentation", + "src": "3922:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3983:9:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 243, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4045:8:1" + }, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4001:5:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "3993:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3993:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4016:7:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4008:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3992:32:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4063:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4063:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4062:9:1" + }, + "scope": 699, + "src": "3974:149:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 764 + ], + "body": { + "id": 278, + "nodeType": "Block", + "src": "4520:108:1", + "statements": [ + { + "assignments": [ + 266 + ], + "declarations": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4538:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "4530:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4530:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 269, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 267, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4546:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4546:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4530:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 271, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "4577:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 272, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 257, + "src": "4584:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 273, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "4593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 270, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "4568:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 275, + "nodeType": "ExpressionStatement", + "src": "4568:32:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 264, + "id": 277, + "nodeType": "Return", + "src": "4610:11:1" + } + ] + }, + "documentation": { + "id": 255, + "nodeType": "StructuredDocumentation", + "src": "4129:297:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 279, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4440:7:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 261, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4496:8:1" + }, + "parameters": { + "id": 260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 257, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4456:7:1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4448:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4448:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4473:6:1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4465:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4447:33:1" + }, + "returnParameters": { + "id": 264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 263, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "4514:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 262, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4514:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4513:6:1" + }, + "scope": 699, + "src": "4431:197:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 776 + ], + "body": { + "id": 311, + "nodeType": "Block", + "src": "5323:153:1", + "statements": [ + { + "assignments": [ + 293 + ], + "declarations": [ + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5341:7:1", + "nodeType": "VariableDeclaration", + "scope": 311, + "src": "5333:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 296, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 294, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5351:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5351:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5333:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 298, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5389:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 293, + "src": "5395:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 300, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "5404:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 297, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 676, + "src": "5373:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5373:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 302, + "nodeType": "ExpressionStatement", + "src": "5373:38:1" + }, + { + "expression": { + "arguments": [ + { + "id": 304, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "5431:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 305, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "5437:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 306, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "5441:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 303, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 459, + "src": "5421:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5421:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "5421:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5465:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 291, + "id": 310, + "nodeType": "Return", + "src": "5458:11:1" + } + ] + }, + "documentation": { + "id": 280, + "nodeType": "StructuredDocumentation", + "src": "4634:551:1", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." + }, + "functionSelector": "23b872dd", + "id": 312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "5199:12:1", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 288, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5299:8:1" + }, + "parameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "mutability": "mutable", + "name": "from", + "nameLocation": "5229:4:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5221:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "to", + "nameLocation": "5251:2:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5243:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5243:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "amount", + "nameLocation": "5271:6:1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5263:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5263:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5211:72:1" + }, + "returnParameters": { + "id": 291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 290, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 312, + "src": "5317:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 289, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5316:6:1" + }, + "scope": 699, + "src": "5190:286:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 340, + "nodeType": "Block", + "src": "5965:140:1", + "statements": [ + { + "assignments": [ + 323 + ], + "declarations": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5983:5:1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "5975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5975:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 326, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 324, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5991:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5991:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5975:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "6022:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 329, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6029:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 331, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "6048:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 332, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 330, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "6038:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6038:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 334, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "6066:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6038:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 327, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6013:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6013:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 337, + "nodeType": "ExpressionStatement", + "src": "6013:64:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6094:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 321, + "id": 339, + "nodeType": "Return", + "src": "6087:11:1" + } + ] + }, + "documentation": { + "id": 313, + "nodeType": "StructuredDocumentation", + "src": "5482:384:1", + "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "39509351", + "id": 341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nameLocation": "5880:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5906:7:1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5898:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 317, + "mutability": "mutable", + "name": "addedValue", + "nameLocation": "5923:10:1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5915:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5915:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5897:37:1" + }, + "returnParameters": { + "id": 321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 341, + "src": "5959:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 319, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5959:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5958:6:1" + }, + "scope": 699, + "src": "5871:234:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 381, + "nodeType": "Block", + "src": "6691:328:1", + "statements": [ + { + "assignments": [ + 352 + ], + "declarations": [ + { + "constant": false, + "id": 352, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6709:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "6701:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6701:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 355, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 353, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "6717:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6717:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6701:28:1" + }, + { + "assignments": [ + 357 + ], + "declarations": [ + { + "constant": false, + "id": 357, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "6747:16:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "6739:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 362, + "initialValue": { + "arguments": [ + { + "id": 359, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6776:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 360, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "6783:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 358, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "6766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6766:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6739:52:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 364, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "6809:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 365, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "6829:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6809:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6846:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + }, + "value": "ERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "typeString": "literal_string \"ERC20: decreased allowance below zero\"" + } + ], + "id": 363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6801:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6801:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "6801:85:1" + }, + { + "id": 378, + "nodeType": "UncheckedBlock", + "src": "6896:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 371, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6929:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 372, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "6936:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 373, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "6945:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 374, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "6964:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6945:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 370, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6920:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6920:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "6920:60:1" + } + ] + }, + { + "expression": { + "hexValue": "74727565", + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7008:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 350, + "id": 380, + "nodeType": "Return", + "src": "7001:11:1" + } + ] + }, + "documentation": { + "id": 342, + "nodeType": "StructuredDocumentation", + "src": "6111:476:1", + "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." + }, + "functionSelector": "a457c2d7", + "id": 382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nameLocation": "6601:17:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 344, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6627:7:1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6619:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6619:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "subtractedValue", + "nameLocation": "6644:15:1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6636:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6618:42:1" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "6685:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 348, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6685:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6684:6:1" + }, + "scope": 699, + "src": "6592:427:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 458, + "nodeType": "Block", + "src": "7581:710:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 393, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7599:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7615:1:1", + "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": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7607:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7607:7:1", + "typeDescriptions": {} + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7607:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7599:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7619:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + }, + "value": "ERC20: transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "typeString": "literal_string \"ERC20: transfer from the zero address\"" + } + ], + "id": 392, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7591:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7591:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 401, + "nodeType": "ExpressionStatement", + "src": "7591:68:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 403, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "7677:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7691:1:1", + "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": 405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7683:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7683:7:1", + "typeDescriptions": {} + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7683:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7677:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7695:37:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + }, + "value": "ERC20: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "typeString": "literal_string \"ERC20: transfer to the zero address\"" + } + ], + "id": 402, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7669:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7669:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 411, + "nodeType": "ExpressionStatement", + "src": "7669:64:1" + }, + { + "expression": { + "arguments": [ + { + "id": 413, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7765:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 414, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "7771:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 415, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7775:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 412, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "7744:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7744:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 417, + "nodeType": "ExpressionStatement", + "src": "7744:38:1" + }, + { + "assignments": [ + 419 + ], + "declarations": [ + { + "constant": false, + "id": 419, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "7801:11:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "7793:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7793:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 423, + "initialValue": { + "baseExpression": { + "id": 420, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "7815:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 422, + "indexExpression": { + "id": 421, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7825:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7815:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7793:37:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 425, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 419, + "src": "7848:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 426, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7863:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7848:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7871:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + }, + "value": "ERC20: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" + } + ], + "id": 424, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7840:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7840:72:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 430, + "nodeType": "ExpressionStatement", + "src": "7840:72:1" + }, + { + "id": 445, + "nodeType": "UncheckedBlock", + "src": "7922:273:1", + "statements": [ + { + "expression": { + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 431, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "7946:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 433, + "indexExpression": { + "id": 432, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "7956:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7946:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 434, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 419, + "src": "7964:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 435, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "7978:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7964:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7946:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 438, + "nodeType": "ExpressionStatement", + "src": "7946:38:1" + }, + { + "expression": { + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 439, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "8161:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 441, + "indexExpression": { + "id": 440, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8161:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 442, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8178:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8161:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 444, + "nodeType": "ExpressionStatement", + "src": "8161:23:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "id": 447, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "8219:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 448, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8225:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 449, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8229:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 446, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "8210:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8210:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 451, + "nodeType": "EmitStatement", + "src": "8205:31:1" + }, + { + "expression": { + "arguments": [ + { + "id": 453, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 385, + "src": "8267:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8273:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 455, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "8277:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 452, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8247:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8247:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 457, + "nodeType": "ExpressionStatement", + "src": "8247:37:1" + } + ] + }, + "documentation": { + "id": 383, + "nodeType": "StructuredDocumentation", + "src": "7025:443:1", + "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." + }, + "id": 459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "7482:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 385, + "mutability": "mutable", + "name": "from", + "nameLocation": "7509:4:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7501:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7501:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 387, + "mutability": "mutable", + "name": "to", + "nameLocation": "7531:2:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7523:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7523:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7551:6:1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "7543:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7491:72:1" + }, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "7581:0:1" + }, + "scope": 699, + "src": "7473:818:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 515, + "nodeType": "Block", + "src": "8632:470:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 468, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8669:1:1", + "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": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8661:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8661:7:1", + "typeDescriptions": {} + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8661:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8650:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8673:33:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + }, + "value": "ERC20: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "typeString": "literal_string \"ERC20: mint to the zero address\"" + } + ], + "id": 467, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8642:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8642:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 476, + "nodeType": "ExpressionStatement", + "src": "8642:65:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8747:1:1", + "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": 479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8739:7:1", + "typeDescriptions": {} + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8739:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 482, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 483, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 477, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "8718:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8718:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 485, + "nodeType": "ExpressionStatement", + "src": "8718:49:1" + }, + { + "expression": { + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 486, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "8778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 487, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8794:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8778:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "8778:22:1" + }, + { + "id": 496, + "nodeType": "UncheckedBlock", + "src": "8810:175:1", + "statements": [ + { + "expression": { + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 490, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "8946:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 492, + "indexExpression": { + "id": 491, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8956:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8946:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 493, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8968:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8946:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 495, + "nodeType": "ExpressionStatement", + "src": "8946:28:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9016:1:1", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9008:7:1", + "typeDescriptions": {} + } + }, + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9008:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 502, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "9020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 503, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "9029:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 497, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "8999:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8999:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 505, + "nodeType": "EmitStatement", + "src": "8994:42:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9075:1:1", + "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": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9067:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9067:7:1", + "typeDescriptions": {} + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9067:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 511, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "9079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 512, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "9088:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 506, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9047:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9047:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 514, + "nodeType": "ExpressionStatement", + "src": "9047:48:1" + } + ] + }, + "documentation": { + "id": 460, + "nodeType": "StructuredDocumentation", + "src": "8297:265:1", + "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." + }, + "id": 516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "8576:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "account", + "nameLocation": "8590:7:1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "8582:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8582:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "mutability": "mutable", + "name": "amount", + "nameLocation": "8607:6:1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "8599:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8581:33:1" + }, + "returnParameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [], + "src": "8632:0:1" + }, + "scope": 699, + "src": "8567:535:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 587, + "nodeType": "Block", + "src": "9487:594:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 525, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9524:1:1", + "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": 527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9516:7:1", + "typeDescriptions": {} + } + }, + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9516:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9505:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9528:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + }, + "value": "ERC20: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", + "typeString": "literal_string \"ERC20: burn from the zero address\"" + } + ], + "id": 524, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9497:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9497:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 533, + "nodeType": "ExpressionStatement", + "src": "9497:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9596:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9613:1:1", + "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": 537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9605:7:1", + "typeDescriptions": {} + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9605:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 540, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9617:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 534, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "9575:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9575:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 542, + "nodeType": "ExpressionStatement", + "src": "9575:49:1" + }, + { + "assignments": [ + 544 + ], + "declarations": [ + { + "constant": false, + "id": 544, + "mutability": "mutable", + "name": "accountBalance", + "nameLocation": "9643:14:1", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "9635:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9635:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 548, + "initialValue": { + "baseExpression": { + "id": 545, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "9660:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 547, + "indexExpression": { + "id": 546, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9670:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9660:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9635:43:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 550, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "9696:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 551, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9714:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9696:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9722:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + }, + "value": "ERC20: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", + "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" + } + ], + "id": 549, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9688:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 555, + "nodeType": "ExpressionStatement", + "src": "9688:71:1" + }, + { + "id": 568, + "nodeType": "UncheckedBlock", + "src": "9769:194:1", + "statements": [ + { + "expression": { + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 556, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "9793:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 558, + "indexExpression": { + "id": 557, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9803:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9793:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 559, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "9814:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 560, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9831:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9814:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9793:44:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 563, + "nodeType": "ExpressionStatement", + "src": "9793:44:1" + }, + { + "expression": { + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 564, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 136, + "src": "9930:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 565, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "9946:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9930:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 567, + "nodeType": "ExpressionStatement", + "src": "9930:22:1" + } + ] + }, + { + "eventCall": { + "arguments": [ + { + "id": 570, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "9987:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10004:1:1", + "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": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9996:7:1", + "typeDescriptions": {} + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9996:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 575, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "10008:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 569, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "9978:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9978:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 577, + "nodeType": "EmitStatement", + "src": "9973:42:1" + }, + { + "expression": { + "arguments": [ + { + "id": 579, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "10046:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10063:1:1", + "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": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10055:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10055:7:1", + "typeDescriptions": {} + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10055:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 584, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "10067:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 578, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "10026:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10026:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "10026:48:1" + } + ] + }, + "documentation": { + "id": 517, + "nodeType": "StructuredDocumentation", + "src": "9108:309:1", + "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." + }, + "id": 588, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "9431:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "account", + "nameLocation": "9445:7:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "9437:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9437:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9462:6:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "9454:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9454:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9436:33:1" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [], + "src": "9487:0:1" + }, + "scope": 699, + "src": "9422:659:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 632, + "nodeType": "Block", + "src": "10617:257:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 599, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10635:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10652:1:1", + "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": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10644:7:1", + "typeDescriptions": {} + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10644:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10635:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10656:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + }, + "value": "ERC20: approve from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "typeString": "literal_string \"ERC20: approve from the zero address\"" + } + ], + "id": 598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10627:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10627:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 607, + "nodeType": "ExpressionStatement", + "src": "10627:68:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 609, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10713:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10732:1:1", + "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": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10724:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10724:7:1", + "typeDescriptions": {} + } + }, + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10724:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10713:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10736:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + }, + "value": "ERC20: approve to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "typeString": "literal_string \"ERC20: approve to the zero address\"" + } + ], + "id": 608, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10705:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10705:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 617, + "nodeType": "ExpressionStatement", + "src": "10705:68:1" + }, + { + "expression": { + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 618, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "10784:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 621, + "indexExpression": { + "id": 619, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10796:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10784:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 622, + "indexExpression": { + "id": 620, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10803:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10784:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 623, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "10814:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10784:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "10784:36:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 627, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "10844:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 628, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "10851:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "10860:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 626, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 720, + "src": "10835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10835:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 631, + "nodeType": "EmitStatement", + "src": "10830:37:1" + } + ] + }, + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "10087:412:1", + "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." + }, + "id": 633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "10513:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10539:5:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10531:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10531:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10562:7:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10554:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10554:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "amount", + "nameLocation": "10587:6:1", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "10579:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10521:78:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "10617:0:1" + }, + "scope": 699, + "src": "10504:370:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 675, + "nodeType": "Block", + "src": "11275:321:1", + "statements": [ + { + "assignments": [ + 644 + ], + "declarations": [ + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "11293:16:1", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "11285:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 649, + "initialValue": { + "arguments": [ + { + "id": 646, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "11322:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 647, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "11329:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 645, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "11312:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11312:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11285:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 650, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11351:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11376:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11376:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 651, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11371:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11371:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11385:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11371:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11351:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 674, + "nodeType": "IfStatement", + "src": "11347:243:1", + "trueBody": { + "id": 673, + "nodeType": "Block", + "src": "11390:200:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 658, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11412:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 659, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "11432:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11412:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11440:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "typeString": "literal_string \"ERC20: insufficient allowance\"" + }, + "value": "ERC20: insufficient allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "typeString": "literal_string \"ERC20: insufficient allowance\"" + } + ], + "id": 657, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11404:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11404:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "11404:68:1" + }, + { + "id": 672, + "nodeType": "UncheckedBlock", + "src": "11486:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 665, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "11523:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 666, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "11530:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 667, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "11539:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 668, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "11558:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11539:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 664, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "11514:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11514:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 671, + "nodeType": "ExpressionStatement", + "src": "11514:51:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 634, + "nodeType": "StructuredDocumentation", + "src": "10880:270:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." + }, + "id": 676, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "11164:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 636, + "mutability": "mutable", + "name": "owner", + "nameLocation": "11197:5:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11189:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11189:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "spender", + "nameLocation": "11220:7:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11212:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11212:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "amount", + "nameLocation": "11245:6:1", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "11237:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11237:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11179:78:1" + }, + "returnParameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "11275:0:1" + }, + "scope": 699, + "src": "11155:441:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 686, + "nodeType": "Block", + "src": "12299:2:1", + "statements": [] + }, + "documentation": { + "id": 677, + "nodeType": "StructuredDocumentation", + "src": "11602:573:1", + "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 687, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "12189:20:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "from", + "nameLocation": "12227:4:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12219:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12219:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "to", + "nameLocation": "12249:2:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12241:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12241:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "amount", + "nameLocation": "12269:6:1", + "nodeType": "VariableDeclaration", + "scope": 687, + "src": "12261:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12261:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12209:72:1" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [], + "src": "12299:0:1" + }, + "scope": 699, + "src": "12180:121:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 697, + "nodeType": "Block", + "src": "13007:2:1", + "statements": [] + }, + "documentation": { + "id": 688, + "nodeType": "StructuredDocumentation", + "src": "12307:577:1", + "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 698, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterTokenTransfer", + "nameLocation": "12898:19:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 690, + "mutability": "mutable", + "name": "from", + "nameLocation": "12935:4:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12927:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12927:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 692, + "mutability": "mutable", + "name": "to", + "nameLocation": "12957:2:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12949:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12949:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "amount", + "nameLocation": "12977:6:1", + "nodeType": "VariableDeclaration", + "scope": 698, + "src": "12969:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12969:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12917:72:1" + }, + "returnParameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [], + "src": "13007:0:1" + }, + "scope": 699, + "src": "12889:120:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 700, + "src": "1401:11610:1", + "usedErrors": [] + } + ], + "src": "105:12907:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 777 + ] + }, + "id": 778, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 701, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "106:23:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 702, + "nodeType": "StructuredDocumentation", + "src": "131:70:2", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 777, + "linearizedBaseContracts": [ + 777 + ], + "name": "IERC20", + "nameLocation": "212:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 703, + "nodeType": "StructuredDocumentation", + "src": "225:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 711, + "name": "Transfer", + "nameLocation": "394:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 705, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "419:4:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "403:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "403:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 707, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "441:2:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "425:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "425:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 709, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "453:5:2", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "445:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "445:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "402:57:2" + }, + "src": "388:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "466:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 720, + "name": "Approval", + "nameLocation": "625:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "650:5:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "634:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "634:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "673:7:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "657:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "657:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "690:5:2", + "nodeType": "VariableDeclaration", + "scope": 720, + "src": "682:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "682:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "633:63:2" + }, + "src": "619:78:2" + }, + { + "documentation": { + "id": 721, + "nodeType": "StructuredDocumentation", + "src": "703:66:2", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 726, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "783:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 722, + "nodeType": "ParameterList", + "parameters": [], + "src": "794:2:2" + }, + "returnParameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 726, + "src": "820:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "820:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "819:9:2" + }, + "scope": 777, + "src": "774:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 727, + "nodeType": "StructuredDocumentation", + "src": "835:72:2", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 734, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 734, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 734, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 777, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 735, + "nodeType": "StructuredDocumentation", + "src": "986:202:2", + "text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 744, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1202:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 737, + "mutability": "mutable", + "name": "to", + "nameLocation": "1219:2:2", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1211:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 739, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1231:6:2", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1223:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1210:28:2" + }, + "returnParameters": { + "id": 743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "1257:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 741, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1257:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1256:6:2" + }, + "scope": 777, + "src": "1193:70:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 745, + "nodeType": "StructuredDocumentation", + "src": "1269:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1547:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 747, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1565:5:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1557:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 746, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1557:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1580:7:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1572:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1572:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1556:32:2" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "1612:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1612:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1611:9:2" + }, + "scope": 777, + "src": "1538:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 755, + "nodeType": "StructuredDocumentation", + "src": "1627:642:2", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2283:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 757, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2299:7:2", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2291:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2291:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 759, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2316:6:2", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2308:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2308:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2290:33:2" + }, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 764, + "src": "2342:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 761, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2342:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2341:6:2" + }, + "scope": 777, + "src": "2274:74:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 765, + "nodeType": "StructuredDocumentation", + "src": "2354:287:2", + "text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 776, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2655:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 767, + "mutability": "mutable", + "name": "from", + "nameLocation": "2685:4:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2677:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2677:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 769, + "mutability": "mutable", + "name": "to", + "nameLocation": "2707:2:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2699:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2699:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 771, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2727:6:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2719:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2667:72:2" + }, + "returnParameters": { + "id": 775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 774, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2758:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2758:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2757:6:2" + }, + "scope": 777, + "src": "2646:118:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 778, + "src": "202:2564:2", + "usedErrors": [] + } + ], + "src": "106:2661:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 803, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 779, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "110:23:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 780, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 803, + "sourceUnit": 778, + "src": "135:23:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 782, + "name": "IERC20", + "nameLocations": [ + "305:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "305:6:3" + }, + "id": 783, + "nodeType": "InheritanceSpecifier", + "src": "305:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 781, + "nodeType": "StructuredDocumentation", + "src": "160:116:3", + "text": " @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._" + }, + "fullyImplemented": false, + "id": 802, + "linearizedBaseContracts": [ + 802, + 777 + ], + "name": "IERC20Metadata", + "nameLocation": "287:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "318:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "386:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 785, + "nodeType": "ParameterList", + "parameters": [], + "src": "390:2:3" + }, + "returnParameters": { + "id": 788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 787, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "416:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 786, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "416:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "415:15:3" + }, + "scope": 802, + "src": "377:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 790, + "nodeType": "StructuredDocumentation", + "src": "437:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 795, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "507:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 791, + "nodeType": "ParameterList", + "parameters": [], + "src": "513:2:3" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 795, + "src": "539:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 792, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "539:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "538:15:3" + }, + "scope": 802, + "src": "498:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 796, + "nodeType": "StructuredDocumentation", + "src": "560:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 801, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "639:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [], + "src": "647:2:3" + }, + "returnParameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "673:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 798, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "673:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "672:7:3" + }, + "scope": 802, + "src": "630:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 803, + "src": "277:405:3", + "usedErrors": [] + } + ], + "src": "110:573:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "exportedSymbols": { + "IERC20Permit": [ + 838 + ] + }, + "id": 839, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 804, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "114:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Permit", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 805, + "nodeType": "StructuredDocumentation", + "src": "139:480:4", + "text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all." + }, + "fullyImplemented": false, + "id": 838, + "linearizedBaseContracts": [ + 838 + ], + "name": "IERC20Permit", + "nameLocation": "630:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 806, + "nodeType": "StructuredDocumentation", + "src": "649:792:4", + "text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]." + }, + "functionSelector": "d505accf", + "id": 823, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nameLocation": "1455:6:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 808, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1479:5:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1471:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1471:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 810, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1502:7:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1494:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1494:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "value", + "nameLocation": "1527:5:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1519:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1519:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 814, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "1550:8:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1542:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1542:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "mutability": "mutable", + "name": "v", + "nameLocation": "1574:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1568:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 815, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1568:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "mutability": "mutable", + "name": "r", + "nameLocation": "1593:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1585:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1585:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 820, + "mutability": "mutable", + "name": "s", + "nameLocation": "1612:1:4", + "nodeType": "VariableDeclaration", + "scope": 823, + "src": "1604:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 819, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1604:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1461:158:4" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1628:0:4" + }, + "scope": 838, + "src": "1446:183:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 824, + "nodeType": "StructuredDocumentation", + "src": "1635:294:4", + "text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times." + }, + "functionSelector": "7ecebe00", + "id": 831, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nameLocation": "1943:6:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 826, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1958:5:4", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "1950:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1950:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1949:15:4" + }, + "returnParameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "1988:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1987:9:4" + }, + "scope": 838, + "src": "1934:63:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 832, + "nodeType": "StructuredDocumentation", + "src": "2003:128:4", + "text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}." + }, + "functionSelector": "3644e515", + "id": 837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nameLocation": "2198:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "2214:2:4" + }, + "returnParameters": { + "id": 836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2240:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 834, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2240:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2239:9:4" + }, + "scope": 838, + "src": "2189:60:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 839, + "src": "620:1631:4", + "usedErrors": [] + } + ], + "src": "114:2138:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "SafeERC20": [ + 1119 + ] + }, + "id": 1120, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 840, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "115:23:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 841, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 778, + "src": "140:23:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "file": "../extensions/draft-IERC20Permit.sol", + "id": 842, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 839, + "src": "164:46:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../../utils/Address.sol", + "id": 843, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1120, + "sourceUnit": 2538, + "src": "211:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeERC20", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 844, + "nodeType": "StructuredDocumentation", + "src": "249:457:5", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 1119, + "linearizedBaseContracts": [ + 1119 + ], + "name": "SafeERC20", + "nameLocation": "715:9:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 847, + "libraryName": { + "id": 845, + "name": "Address", + "nameLocations": [ + "737:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2537, + "src": "737:7:5" + }, + "nodeType": "UsingForDirective", + "src": "731:26:5", + "typeName": { + "id": 846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "749:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "body": { + "id": 869, + "nodeType": "Block", + "src": "865:103:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 858, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "895:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 861, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 850, + "src": "925:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "931:8:5", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 744, + "src": "925:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "940:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "925:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 864, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 865, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "954:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 859, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "902:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "906:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "902:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "902:58:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 857, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "875:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "875:86:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 868, + "nodeType": "ExpressionStatement", + "src": "875:86:5" + } + ] + }, + "id": 870, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nameLocation": "772:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 850, + "mutability": "mutable", + "name": "token", + "nameLocation": "801:5:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "794:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 849, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 848, + "name": "IERC20", + "nameLocations": [ + "794:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "794:6:5" + }, + "referencedDeclaration": 777, + "src": "794:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 852, + "mutability": "mutable", + "name": "to", + "nameLocation": "824:2:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "816:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "816:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 854, + "mutability": "mutable", + "name": "value", + "nameLocation": "844:5:5", + "nodeType": "VariableDeclaration", + "scope": 870, + "src": "836:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "836:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "784:71:5" + }, + "returnParameters": { + "id": 856, + "nodeType": "ParameterList", + "parameters": [], + "src": "865:0:5" + }, + "scope": 1119, + "src": "763:205:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 895, + "nodeType": "Block", + "src": "1102:113:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 883, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "1132:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 886, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "1162:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1168:12:5", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 776, + "src": "1162:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1181:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1162:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 889, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 875, + "src": "1191:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "1197:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 891, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 879, + "src": "1201:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 884, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1139:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1143:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "1139:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1139:68:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 882, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1112:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1112:96:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "1112:96:5" + } + ] + }, + "id": 896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "983:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "token", + "nameLocation": "1016:5:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1009:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 872, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 871, + "name": "IERC20", + "nameLocations": [ + "1009:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1009:6:5" + }, + "referencedDeclaration": 777, + "src": "1009:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "mutability": "mutable", + "name": "from", + "nameLocation": "1039:4:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1031:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1031:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "mutability": "mutable", + "name": "to", + "nameLocation": "1061:2:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1053:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1053:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 879, + "mutability": "mutable", + "name": "value", + "nameLocation": "1081:5:5", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "1073:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1073:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "999:93:5" + }, + "returnParameters": { + "id": 881, + "nodeType": "ParameterList", + "parameters": [], + "src": "1102:0:5" + }, + "scope": 1119, + "src": "974:241:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 939, + "nodeType": "Block", + "src": "1581:497:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 908, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 904, + "src": "1830:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1839:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1830:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 911, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1829:12:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 916, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1870:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1862:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 914, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1862:7:5", + "typeDescriptions": {} + } + }, + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1862:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 918, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "1877:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 912, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "1846:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1852:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "1846:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1846:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1889:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1846:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 922, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1845:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1829:62:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1905:56:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 907, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1808:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1808:163:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 926, + "nodeType": "ExpressionStatement", + "src": "1808:163:5" + }, + { + "expression": { + "arguments": [ + { + "id": 928, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2001:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 931, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 900, + "src": "2031:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2037:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2031:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2045:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2031:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 934, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 902, + "src": "2055:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 935, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 904, + "src": "2064:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 929, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2008:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2012:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2008:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2008:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 927, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "1981:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1981:90:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "1981:90:5" + } + ] + }, + "documentation": { + "id": 897, + "nodeType": "StructuredDocumentation", + "src": "1221:249:5", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nameLocation": "1484:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 900, + "mutability": "mutable", + "name": "token", + "nameLocation": "1512:5:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1505:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 899, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 898, + "name": "IERC20", + "nameLocations": [ + "1505:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1505:6:5" + }, + "referencedDeclaration": 777, + "src": "1505:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 902, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1535:7:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1527:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 901, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1527:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "value", + "nameLocation": "1560:5:5", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "1552:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1552:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1495:76:5" + }, + "returnParameters": { + "id": 906, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:5" + }, + "scope": 1119, + "src": "1475:603:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 975, + "nodeType": "Block", + "src": "2200:194:5", + "statements": [ + { + "assignments": [ + 951 + ], + "declarations": [ + { + "constant": false, + "id": 951, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2218:12:5", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "2210:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2210:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 962, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 956, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2257:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2249:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2249:7:5", + "typeDescriptions": {} + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2249:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 958, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "2264:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 952, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2233:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2239:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "2233:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2233:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 960, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "2275:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2233:47:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2210:70:5" + }, + { + "expression": { + "arguments": [ + { + "id": 964, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2310:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 967, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "2340:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2346:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2340:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2354:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2340:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 970, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "2364:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 971, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "2373:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 965, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2317:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2321:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2317:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2317:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 963, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "2290:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2290:97:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 974, + "nodeType": "ExpressionStatement", + "src": "2290:97:5" + } + ] + }, + "id": 976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nameLocation": "2093:21:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 943, + "mutability": "mutable", + "name": "token", + "nameLocation": "2131:5:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2124:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 942, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 941, + "name": "IERC20", + "nameLocations": [ + "2124:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "2124:6:5" + }, + "referencedDeclaration": 777, + "src": "2124:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 945, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2154:7:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2146:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2146:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "value", + "nameLocation": "2179:5:5", + "nodeType": "VariableDeclaration", + "scope": 976, + "src": "2171:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2171:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2114:76:5" + }, + "returnParameters": { + "id": 949, + "nodeType": "ParameterList", + "parameters": [], + "src": "2200:0:5" + }, + "scope": 1119, + "src": "2084:310:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1023, + "nodeType": "Block", + "src": "2516:370:5", + "statements": [ + { + "id": 1022, + "nodeType": "UncheckedBlock", + "src": "2526:354:5", + "statements": [ + { + "assignments": [ + 987 + ], + "declarations": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "oldAllowance", + "nameLocation": "2558:12:5", + "nodeType": "VariableDeclaration", + "scope": 1022, + "src": "2550:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2550:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 992, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2597:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$1119", + "typeString": "library SafeERC20" + } + ], + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2589:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 990, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2589:7:5", + "typeDescriptions": {} + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2589:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 994, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "2604:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 988, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2573:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2579:9:5", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "2573:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2550:62:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 998, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "2634:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 999, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2650:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2634:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2657:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 997, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2626:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2626:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "2626:75:5" + }, + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "2723:12:5", + "nodeType": "VariableDeclaration", + "scope": 1022, + "src": "2715:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2715:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1009, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1006, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "2738:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1007, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2753:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2738:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2715:43:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1011, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2792:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1014, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2822:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2828:7:5", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 764, + "src": "2822:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2836:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2822:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1017, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "2846:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1018, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2855:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1012, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2799:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2803:18:5", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2799:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1010, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "2772:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2772:97:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1021, + "nodeType": "ExpressionStatement", + "src": "2772:97:5" + } + ] + } + ] + }, + "id": 1024, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nameLocation": "2409:21:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 979, + "mutability": "mutable", + "name": "token", + "nameLocation": "2447:5:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2440:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 978, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 977, + "name": "IERC20", + "nameLocations": [ + "2440:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "2440:6:5" + }, + "referencedDeclaration": 777, + "src": "2440:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 981, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2470:7:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2462:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2462:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 983, + "mutability": "mutable", + "name": "value", + "nameLocation": "2495:5:5", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "2487:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2430:76:5" + }, + "returnParameters": { + "id": 985, + "nodeType": "ParameterList", + "parameters": [], + "src": "2516:0:5" + }, + "scope": 1119, + "src": "2400:486:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1079, + "nodeType": "Block", + "src": "3107:257:5", + "statements": [ + { + "assignments": [ + 1045 + ], + "declarations": [ + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "nonceBefore", + "nameLocation": "3125:11:5", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "3117:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3117:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1050, + "initialValue": { + "arguments": [ + { + "id": 1048, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3152:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1046, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3139:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3145:6:5", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 831, + "src": "3139:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3139:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3117:41:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1054, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3181:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1055, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "3188:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1056, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3197:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1057, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1035, + "src": "3204:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1058, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "3214:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 1059, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1039, + "src": "3217:1:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1060, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3220:1:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 1051, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3168:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3174:6:5", + "memberName": "permit", + "nodeType": "MemberAccess", + "referencedDeclaration": 823, + "src": "3168:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3168:54:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "3168:54:5" + }, + { + "assignments": [ + 1064 + ], + "declarations": [ + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "nonceAfter", + "nameLocation": "3240:10:5", + "nodeType": "VariableDeclaration", + "scope": 1079, + "src": "3232:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3232:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1069, + "initialValue": { + "arguments": [ + { + "id": 1067, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "3266:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1065, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "3253:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3259:6:5", + "memberName": "nonces", + "nodeType": "MemberAccess", + "referencedDeclaration": 831, + "src": "3253:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3253:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3232:40:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1071, + "name": "nonceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "3290:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1072, + "name": "nonceBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "3304:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3318:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3304:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3290:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a207065726d697420646964206e6f742073756363656564", + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3321:35:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + }, + "value": "SafeERC20: permit did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d", + "typeString": "literal_string \"SafeERC20: permit did not succeed\"" + } + ], + "id": 1070, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3282:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1078, + "nodeType": "ExpressionStatement", + "src": "3282:75:5" + } + ] + }, + "id": 1080, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safePermit", + "nameLocation": "2901:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1027, + "mutability": "mutable", + "name": "token", + "nameLocation": "2934:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2921:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + }, + "typeName": { + "id": 1026, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1025, + "name": "IERC20Permit", + "nameLocations": [ + "2921:12:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 838, + "src": "2921:12:5" + }, + "referencedDeclaration": 838, + "src": "2921:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20Permit_$838", + "typeString": "contract IERC20Permit" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2957:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2949:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2949:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1031, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2980:7:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2972:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1030, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2972:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "mutability": "mutable", + "name": "value", + "nameLocation": "3005:5:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "2997:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2997:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1035, + "mutability": "mutable", + "name": "deadline", + "nameLocation": "3028:8:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3020:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3020:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "mutability": "mutable", + "name": "v", + "nameLocation": "3052:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3046:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1036, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3046:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1039, + "mutability": "mutable", + "name": "r", + "nameLocation": "3071:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3063:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1038, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1041, + "mutability": "mutable", + "name": "s", + "nameLocation": "3090:1:5", + "nodeType": "VariableDeclaration", + "scope": 1080, + "src": "3082:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1040, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3082:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2911:186:5" + }, + "returnParameters": { + "id": 1043, + "nodeType": "ParameterList", + "parameters": [], + "src": "3107:0:5" + }, + "scope": 1119, + "src": "2892:472:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1117, + "nodeType": "Block", + "src": "3817:636:5", + "statements": [ + { + "assignments": [ + 1090 + ], + "declarations": [ + { + "constant": false, + "id": 1090, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4179:10:5", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "4166:23:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1089, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4166:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "arguments": [ + { + "id": 1096, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1086, + "src": "4220:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4226:34:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 1093, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1084, + "src": "4200:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4192:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4192:7:5", + "typeDescriptions": {} + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4192:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4207:12:5", + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2297, + "src": "4192:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4192:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4166:95:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1100, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1090, + "src": "4275:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4286:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4275:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4295:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4275:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1116, + "nodeType": "IfStatement", + "src": "4271:176:5", + "trueBody": { + "id": 1115, + "nodeType": "Block", + "src": "4298:149:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1107, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1090, + "src": "4370:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4383:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 1108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4383:4:5", + "typeDescriptions": {} + } + } + ], + "id": 1110, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4382:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 1105, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4359:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4363:6:5", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "4359:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4391:44:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 1104, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4351:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4351:85:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "4351:85:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1081, + "nodeType": "StructuredDocumentation", + "src": "3370:372:5", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 1118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nameLocation": "3756:19:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1084, + "mutability": "mutable", + "name": "token", + "nameLocation": "3783:5:5", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "3776:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1083, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1082, + "name": "IERC20", + "nameLocations": [ + "3776:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "3776:6:5" + }, + "referencedDeclaration": 777, + "src": "3776:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "data", + "nameLocation": "3803:4:5", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "3790:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1085, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3790:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3775:33:5" + }, + "returnParameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [], + "src": "3817:0:5" + }, + "scope": 1119, + "src": "3747:706:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1120, + "src": "707:3748:5", + "usedErrors": [] + } + ], + "src": "115:4341:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "ERC165": [ + 2832 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Strings": [ + 2808 + ] + }, + "id": 2047, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1121, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "107:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "./IERC721.sol", + "id": 1122, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2163, + "src": "132:23:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "./IERC721Receiver.sol", + "id": 1123, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2181, + "src": "156:31:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "./extensions/IERC721Metadata.sol", + "id": 1124, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2208, + "src": "188:42:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../utils/Address.sol", + "id": 1125, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2538, + "src": "231:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 1126, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2560, + "src": "265:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../utils/Strings.sol", + "id": 1127, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2809, + "src": "299:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 1128, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2047, + "sourceUnit": 2833, + "src": "333:46:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1130, + "name": "Context", + "nameLocations": [ + "647:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2559, + "src": "647:7:6" + }, + "id": 1131, + "nodeType": "InheritanceSpecifier", + "src": "647:7:6" + }, + { + "baseName": { + "id": 1132, + "name": "ERC165", + "nameLocations": [ + "656:6:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2832, + "src": "656:6:6" + }, + "id": 1133, + "nodeType": "InheritanceSpecifier", + "src": "656:6:6" + }, + { + "baseName": { + "id": 1134, + "name": "IERC721", + "nameLocations": [ + "664:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "664:7:6" + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "664:7:6" + }, + { + "baseName": { + "id": 1136, + "name": "IERC721Metadata", + "nameLocations": [ + "673:15:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2207, + "src": "673:15:6" + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "673:15:6" + } + ], + "canonicalName": "ERC721", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1129, + "nodeType": "StructuredDocumentation", + "src": "381:246:6", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 2046, + "linearizedBaseContracts": [ + 2046, + 2207, + 2162, + 2832, + 2844, + 2559 + ], + "name": "ERC721", + "nameLocation": "637:6:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1140, + "libraryName": { + "id": 1138, + "name": "Address", + "nameLocations": [ + "701:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2537, + "src": "701:7:6" + }, + "nodeType": "UsingForDirective", + "src": "695:26:6", + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "713:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "global": false, + "id": 1143, + "libraryName": { + "id": 1141, + "name": "Strings", + "nameLocations": [ + "732:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2808, + "src": "732:7:6" + }, + "nodeType": "UsingForDirective", + "src": "726:26:6", + "typeName": { + "id": 1142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "744:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1145, + "mutability": "mutable", + "name": "_name", + "nameLocation": "791:5:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "776:20:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 1144, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "776:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "838:7:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "823:22:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 1146, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "823:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "934:7:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "898:43:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 1150, + "keyType": { + "id": 1148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "906:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "898:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 1149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "917:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1155, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1028:9:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "992:45:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1154, + "keyType": { + "id": 1152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1000:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "992:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1129:15:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1093:51:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 1158, + "keyType": { + "id": 1156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1093:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 1157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1112:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1165, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1252:18:6", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1199:71:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 1164, + "keyType": { + "id": 1160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1207:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1199:44:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 1163, + "keyType": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1226:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1218:24:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 1162, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1237:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1181, + "nodeType": "Block", + "src": "1446:57:6", + "statements": [ + { + "expression": { + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1173, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1456:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1174, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "1464:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1456:13:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1176, + "nodeType": "ExpressionStatement", + "src": "1456:13:6" + }, + { + "expression": { + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1177, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1479:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1178, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1170, + "src": "1489:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1479:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1180, + "nodeType": "ExpressionStatement", + "src": "1479:17:6" + } + ] + }, + "documentation": { + "id": 1166, + "nodeType": "StructuredDocumentation", + "src": "1277:108:6", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 1182, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1416:5:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1402:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1167, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1402:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1170, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1437:7:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1423:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1169, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1401:44:6" + }, + "returnParameters": { + "id": 1172, + "nodeType": "ParameterList", + "parameters": [], + "src": "1446:0:6" + }, + "scope": 2046, + "src": "1390:113:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 2831, + 2843 + ], + "body": { + "id": 1212, + "nodeType": "Block", + "src": "1678:192:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1193, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1707:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1195, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "1727:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$2162_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$2162_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 1194, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1722:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1722:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$2162", + "typeString": "type(contract IERC721)" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1736:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1722:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1707:40:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1199, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1763:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1201, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "1783:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2207_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$2207_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 1200, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1778:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1778:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$2207", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1800:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1778:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1763:48:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1707:104:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1208, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "1851:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1206, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1827:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721_$2046_$", + "typeString": "type(contract super ERC721)" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1833:17:6", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2831, + "src": "1827:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1827:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1707:156:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1192, + "id": 1211, + "nodeType": "Return", + "src": "1688:175:6" + } + ] + }, + "documentation": { + "id": 1183, + "nodeType": "StructuredDocumentation", + "src": "1509:56:6", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1579:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1189, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1187, + "name": "ERC165", + "nameLocations": [ + "1646:6:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2832, + "src": "1646:6:6" + }, + { + "id": 1188, + "name": "IERC165", + "nameLocations": [ + "1654:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "1654:7:6" + } + ], + "src": "1637:25:6" + }, + "parameters": { + "id": 1186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1185, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1604:11:6", + "nodeType": "VariableDeclaration", + "scope": 1213, + "src": "1597:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1184, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1597:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1596:20:6" + }, + "returnParameters": { + "id": 1192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1213, + "src": "1672:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1190, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1672:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1671:6:6" + }, + "scope": 2046, + "src": "1570:300:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2087 + ], + "body": { + "id": 1236, + "nodeType": "Block", + "src": "2010:123:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1223, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1216, + "src": "2028:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2045:1:6", + "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": 1225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2037:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2037:7:6", + "typeDescriptions": {} + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2037:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2028:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572", + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2049:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" + }, + "value": "ERC721: address zero is not a valid owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" + } + ], + "id": 1222, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2020:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2020:73:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1231, + "nodeType": "ExpressionStatement", + "src": "2020:73:6" + }, + { + "expression": { + "baseExpression": { + "id": 1232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "2110:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1234, + "indexExpression": { + "id": 1233, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1216, + "src": "2120:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2110:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1221, + "id": 1235, + "nodeType": "Return", + "src": "2103:23:6" + } + ] + }, + "documentation": { + "id": 1214, + "nodeType": "StructuredDocumentation", + "src": "1876:48:6", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 1237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1938:9:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1218, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1983:8:6" + }, + "parameters": { + "id": 1217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1216, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1956:5:6", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1948:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1948:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1947:15:6" + }, + "returnParameters": { + "id": 1221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "2001:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2001:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2000:9:6" + }, + "scope": 2046, + "src": "1929:204:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2095 + ], + "body": { + "id": 1264, + "nodeType": "Block", + "src": "2271:138:6", + "statements": [ + { + "assignments": [ + 1247 + ], + "declarations": [ + { + "constant": false, + "id": 1247, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2289:5:6", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "2281:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2281:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1251, + "initialValue": { + "arguments": [ + { + "id": 1249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "2306:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1248, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1547, + "src": "2297:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2297:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2281:33:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "2332:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:6", + "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": 1255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:6", + "typeDescriptions": {} + } + }, + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2332:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2353:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + }, + "value": "ERC721: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + } + ], + "id": 1252, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2324:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2324:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "2324:56:6" + }, + { + "expression": { + "id": 1262, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "2397:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1245, + "id": 1263, + "nodeType": "Return", + "src": "2390:12:6" + } + ] + }, + "documentation": { + "id": 1238, + "nodeType": "StructuredDocumentation", + "src": "2139:46:6", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 1265, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "2199:7:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1242, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2244:8:6" + }, + "parameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2215:7:6", + "nodeType": "VariableDeclaration", + "scope": 1265, + "src": "2207:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2207:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2206:17:6" + }, + "returnParameters": { + "id": 1245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1244, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1265, + "src": "2262:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2262:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2261:9:6" + }, + "scope": 2046, + "src": "2190:219:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2192 + ], + "body": { + "id": 1274, + "nodeType": "Block", + "src": "2540:29:6", + "statements": [ + { + "expression": { + "id": 1272, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "2557:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 1271, + "id": 1273, + "nodeType": "Return", + "src": "2550:12:6" + } + ] + }, + "documentation": { + "id": 1266, + "nodeType": "StructuredDocumentation", + "src": "2415:51:6", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 1275, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2480:4:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1268, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2507:8:6" + }, + "parameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [], + "src": "2484:2:6" + }, + "returnParameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1275, + "src": "2525:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1269, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2525:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2524:15:6" + }, + "scope": 2046, + "src": "2471:98:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2198 + ], + "body": { + "id": 1284, + "nodeType": "Block", + "src": "2704:31:6", + "statements": [ + { + "expression": { + "id": 1282, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "2721:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 1281, + "id": 1283, + "nodeType": "Return", + "src": "2714:14:6" + } + ] + }, + "documentation": { + "id": 1276, + "nodeType": "StructuredDocumentation", + "src": "2575:53:6", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 1285, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2642:6:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1278, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2671:8:6" + }, + "parameters": { + "id": 1277, + "nodeType": "ParameterList", + "parameters": [], + "src": "2648:2:6" + }, + "returnParameters": { + "id": 1281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1285, + "src": "2689:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1279, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2689:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2688:15:6" + }, + "scope": 2046, + "src": "2633:102:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2206 + ], + "body": { + "id": 1323, + "nodeType": "Block", + "src": "2889:188:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "2914:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1294, + "name": "_requireMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "2899:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2899:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1297, + "nodeType": "ExpressionStatement", + "src": "2899:23:6" + }, + { + "assignments": [ + 1299 + ], + "declarations": [ + { + "constant": false, + "id": 1299, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2947:7:6", + "nodeType": "VariableDeclaration", + "scope": 1323, + "src": "2933:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1298, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2933:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1302, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1300, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "2957:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2957:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2933:34:6" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1305, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "2990:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2984:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2984:5:6", + "typeDescriptions": {} + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2984:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2999:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2984:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3008:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2984:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 1320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3068:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2984:86:6", + "trueExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1314, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1299, + "src": "3036:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1315, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "3045:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3053:8:6", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2691, + "src": "3045:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3045:18:6", + "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": 1312, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3019:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3023:12:6", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "3019:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3019:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1310, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3012:6:6", + "typeDescriptions": {} + } + }, + "id": 1319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1293, + "id": 1322, + "nodeType": "Return", + "src": "2977:93:6" + } + ] + }, + "documentation": { + "id": 1286, + "nodeType": "StructuredDocumentation", + "src": "2741:55:6", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 1324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2810:8:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1290, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2856:8:6" + }, + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2827:7:6", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "2819:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2819:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2818:17:6" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "2874:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1291, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2874:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2873:15:6" + }, + "scope": 2046, + "src": "2801:276:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1332, + "nodeType": "Block", + "src": "3385:26:6", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3402:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 1329, + "id": 1331, + "nodeType": "Return", + "src": "3395:9:6" + } + ] + }, + "documentation": { + "id": 1325, + "nodeType": "StructuredDocumentation", + "src": "3083:231:6", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 1333, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "3328:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1326, + "nodeType": "ParameterList", + "parameters": [], + "src": "3336:2:6" + }, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1328, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "3370:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1327, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3370:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3369:15:6" + }, + "scope": 2046, + "src": "3319:92:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2135 + ], + "body": { + "id": 1375, + "nodeType": "Block", + "src": "3538:336:6", + "statements": [ + { + "assignments": [ + 1343 + ], + "declarations": [ + { + "constant": false, + "id": 1343, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3556:5:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "3548:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3548:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1348, + "initialValue": { + "arguments": [ + { + "id": 1346, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "3579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1344, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "3564:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3571:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "3564:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3564:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3548:39:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1350, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1336, + "src": "3605:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1351, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3611:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3605:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 1349, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3597:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3597:57:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1355, + "nodeType": "ExpressionStatement", + "src": "3597:57:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1357, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3686:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3686:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1359, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3702:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3686:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1362, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "3728:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1363, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "3735:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3735:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1361, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "3711:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3711:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3686:62:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3762:63:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" + }, + "value": "ERC721: approve caller is not token owner or approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" + } + ], + "id": 1356, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3665:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3665:170:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "3665:170:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1371, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1336, + "src": "3855:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1372, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "3859:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1370, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1896, + "src": "3846:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3846:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "ExpressionStatement", + "src": "3846:21:6" + } + ] + }, + "documentation": { + "id": 1334, + "nodeType": "StructuredDocumentation", + "src": "3417:46:6", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 1376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "3477:7:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1340, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3529:8:6" + }, + "parameters": { + "id": 1339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1336, + "mutability": "mutable", + "name": "to", + "nameLocation": "3493:2:6", + "nodeType": "VariableDeclaration", + "scope": 1376, + "src": "3485:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3485:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1338, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3505:7:6", + "nodeType": "VariableDeclaration", + "scope": 1376, + "src": "3497:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3497:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3484:29:6" + }, + "returnParameters": { + "id": 1341, + "nodeType": "ParameterList", + "parameters": [], + "src": "3538:0:6" + }, + "scope": 2046, + "src": "3468:406:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2151 + ], + "body": { + "id": 1393, + "nodeType": "Block", + "src": "4020:82:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1386, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "4045:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1385, + "name": "_requireMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "4030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 1387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4030:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1388, + "nodeType": "ExpressionStatement", + "src": "4030:23:6" + }, + { + "expression": { + "baseExpression": { + "id": 1389, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "4071:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1391, + "indexExpression": { + "id": 1390, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "4087:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4071:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1384, + "id": 1392, + "nodeType": "Return", + "src": "4064:31:6" + } + ] + }, + "documentation": { + "id": 1377, + "nodeType": "StructuredDocumentation", + "src": "3880:50:6", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 1394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "3944:11:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1381, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3993:8:6" + }, + "parameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1379, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3964:7:6", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "3956:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3956:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3955:17:6" + }, + "returnParameters": { + "id": 1384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1383, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "4011:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4011:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4010:9:6" + }, + "scope": 2046, + "src": "3935:167:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2143 + ], + "body": { + "id": 1410, + "nodeType": "Block", + "src": "4253:69:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1404, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4282:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4282:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "4296:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1407, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1399, + "src": "4306:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1403, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "4263:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_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": "4263:52:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1409, + "nodeType": "ExpressionStatement", + "src": "4263:52:6" + } + ] + }, + "documentation": { + "id": 1395, + "nodeType": "StructuredDocumentation", + "src": "4108:56:6", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 1411, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4178:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1401, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4244:8:6" + }, + "parameters": { + "id": 1400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4204:8:6", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "4196:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4196:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1399, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4219:8:6", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "4214:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4214:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4195:33:6" + }, + "returnParameters": { + "id": 1402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4253:0:6" + }, + "scope": 2046, + "src": "4169:153:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2161 + ], + "body": { + "id": 1428, + "nodeType": "Block", + "src": "4491:59:6", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1422, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "4508:18:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1424, + "indexExpression": { + "id": 1423, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "4527:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4508:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1426, + "indexExpression": { + "id": 1425, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1416, + "src": "4534:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4508:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1421, + "id": 1427, + "nodeType": "Return", + "src": "4501:42:6" + } + ] + }, + "documentation": { + "id": 1412, + "nodeType": "StructuredDocumentation", + "src": "4328:55:6", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4397:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1418, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4467:8:6" + }, + "parameters": { + "id": 1417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1414, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4422:5:6", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4414:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4414:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1416, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4437:8:6", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4429:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4429:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4413:33:6" + }, + "returnParameters": { + "id": 1421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "4485:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1419, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4485:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4484:6:6" + }, + "scope": 2046, + "src": "4388:162:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2127 + ], + "body": { + "id": 1455, + "nodeType": "Block", + "src": "4731:207:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1442, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "4820:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4820:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1444, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4834:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1441, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "4801:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4801:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4844:47:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + }, + "value": "ERC721: caller is not token owner or approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + } + ], + "id": 1440, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4793:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4793:99:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1448, + "nodeType": "ExpressionStatement", + "src": "4793:99:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1450, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1432, + "src": "4913:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1451, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "4919:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1452, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4923:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1449, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "4903:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4903:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1454, + "nodeType": "ExpressionStatement", + "src": "4903:28:6" + } + ] + }, + "documentation": { + "id": 1430, + "nodeType": "StructuredDocumentation", + "src": "4556:51:6", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 1456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4621:12:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1438, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4722:8:6" + }, + "parameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1432, + "mutability": "mutable", + "name": "from", + "nameLocation": "4651:4:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4643:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4643:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1434, + "mutability": "mutable", + "name": "to", + "nameLocation": "4673:2:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4665:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4665:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4693:7:6", + "nodeType": "VariableDeclaration", + "scope": 1456, + "src": "4685:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4685:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4633:73:6" + }, + "returnParameters": { + "id": 1439, + "nodeType": "ParameterList", + "parameters": [], + "src": "4731:0:6" + }, + "scope": 2046, + "src": "4612:326:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2117 + ], + "body": { + "id": 1474, + "nodeType": "Block", + "src": "5127:56:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1468, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "5154:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1469, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "5160:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1470, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "5164:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5173:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1467, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1475, + 1505 + ], + "referencedDeclaration": 1505, + "src": "5137:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5137:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1473, + "nodeType": "ExpressionStatement", + "src": "5137:39:6" + } + ] + }, + "documentation": { + "id": 1457, + "nodeType": "StructuredDocumentation", + "src": "4944:55:6", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 1475, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "5013:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1465, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5118:8:6" + }, + "parameters": { + "id": 1464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "from", + "nameLocation": "5047:4:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5039:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5039:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "to", + "nameLocation": "5069:2:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5061:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5061:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5089:7:6", + "nodeType": "VariableDeclaration", + "scope": 1475, + "src": "5081:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5081:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5029:73:6" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [], + "src": "5127:0:6" + }, + "scope": 2046, + "src": "5004:179:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2107 + ], + "body": { + "id": 1504, + "nodeType": "Block", + "src": "5399:164:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1490, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "5436:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5436:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1492, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "5450:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1489, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "5417:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5417:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5460:47:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + }, + "value": "ERC721: caller is not token owner or approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" + } + ], + "id": 1488, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5409:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5409:99:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1496, + "nodeType": "ExpressionStatement", + "src": "5409:99:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1498, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "5532:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1499, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "5538:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1500, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "5542:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1501, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "5551:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1497, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1534, + "src": "5518:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5518:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1503, + "nodeType": "ExpressionStatement", + "src": "5518:38:6" + } + ] + }, + "documentation": { + "id": 1476, + "nodeType": "StructuredDocumentation", + "src": "5189:55:6", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 1505, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "5258:16:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1486, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5390:8:6" + }, + "parameters": { + "id": 1485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1478, + "mutability": "mutable", + "name": "from", + "nameLocation": "5292:4:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5284:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5284:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1480, + "mutability": "mutable", + "name": "to", + "nameLocation": "5314:2:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5306:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5306:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1482, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5334:7:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5326:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5326:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "data", + "nameLocation": "5364:4:6", + "nodeType": "VariableDeclaration", + "scope": 1505, + "src": "5351:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1483, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5351:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5274:100:6" + }, + "returnParameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [], + "src": "5399:0:6" + }, + "scope": 2046, + "src": "5249:314:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6564:165:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1518, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "6584:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1519, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1510, + "src": "6590:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1520, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "6594:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1517, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "6574:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6574:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1522, + "nodeType": "ExpressionStatement", + "src": "6574:28:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1525, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "6643:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1526, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1510, + "src": "6649:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1527, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "6653:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1514, + "src": "6662:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1524, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "6620:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 1529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6620:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6669:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1523, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6612:110:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6612:110:6" + } + ] + }, + "documentation": { + "id": 1506, + "nodeType": "StructuredDocumentation", + "src": "5569:850:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1534, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "6433:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "from", + "nameLocation": "6464:4:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6456:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6456:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1510, + "mutability": "mutable", + "name": "to", + "nameLocation": "6486:2:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6478:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6478:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6506:7:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6498:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6498:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1514, + "mutability": "mutable", + "name": "data", + "nameLocation": "6536:4:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6523:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1513, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6523:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6446:100:6" + }, + "returnParameters": { + "id": 1516, + "nodeType": "ParameterList", + "parameters": [], + "src": "6564:0:6" + }, + "scope": 2046, + "src": "6424:305:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1546, + "nodeType": "Block", + "src": "6913:40:6", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 1542, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "6930:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1544, + "indexExpression": { + "id": 1543, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1537, + "src": "6938:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6930:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1541, + "id": 1545, + "nodeType": "Return", + "src": "6923:23:6" + } + ] + }, + "documentation": { + "id": 1535, + "nodeType": "StructuredDocumentation", + "src": "6735:98:6", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist" + }, + "id": 1547, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "6847:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1537, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6864:7:6", + "nodeType": "VariableDeclaration", + "scope": 1547, + "src": "6856:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6856:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6855:17:6" + }, + "returnParameters": { + "id": 1541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1540, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1547, + "src": "6904:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6904:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6903:9:6" + }, + "scope": 2046, + "src": "6838:115:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1564, + "nodeType": "Block", + "src": "7327:55:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1556, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "7353:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1555, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1547, + "src": "7344:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7344:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7373:1:6", + "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": 1559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7365:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7365:7:6", + "typeDescriptions": {} + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7365:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7344:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1554, + "id": 1563, + "nodeType": "Return", + "src": "7337:38:6" + } + ] + }, + "documentation": { + "id": 1548, + "nodeType": "StructuredDocumentation", + "src": "6959:292:6", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 1565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nameLocation": "7265:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1550, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7281:7:6", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "7273:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7273:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7272:17:6" + }, + "returnParameters": { + "id": 1554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "7321:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7321:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7320:6:6" + }, + "scope": 2046, + "src": "7256:126:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "7639:162:6", + "statements": [ + { + "assignments": [ + 1576 + ], + "declarations": [ + { + "constant": false, + "id": 1576, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7657:5:6", + "nodeType": "VariableDeclaration", + "scope": 1598, + "src": "7649:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7649:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1581, + "initialValue": { + "arguments": [ + { + "id": 1579, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "7680:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1577, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "7665:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7672:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "7665:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7665:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7649:39:6" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1582, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7706:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1583, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1576, + "src": "7717:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7706:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1586, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1576, + "src": "7743:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1587, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7750:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1585, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "7726:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7726:32:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7706:52:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1591, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "7774:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1590, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "7762:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7762:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1593, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "7786:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7762:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7706:87:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1596, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7705:89:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1574, + "id": 1597, + "nodeType": "Return", + "src": "7698:96:6" + } + ] + }, + "documentation": { + "id": 1566, + "nodeType": "StructuredDocumentation", + "src": "7388:147:6", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 1599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nameLocation": "7549:18:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1568, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7576:7:6", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7568:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7568:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1570, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7593:7:6", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7585:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7585:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7567:34:6" + }, + "returnParameters": { + "id": 1574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "7633:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1572, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7633:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7632:6:6" + }, + "scope": 2046, + "src": "7540:261:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1613, + "nodeType": "Block", + "src": "8196:43:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1608, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "8216:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1609, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1604, + "src": "8220:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8229:2:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1607, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1614, + 1643 + ], + "referencedDeclaration": 1643, + "src": "8206:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8206:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "8206:26:6" + } + ] + }, + "documentation": { + "id": 1600, + "nodeType": "StructuredDocumentation", + "src": "7807:319:6", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1614, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "8140:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1602, + "mutability": "mutable", + "name": "to", + "nameLocation": "8158:2:6", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "8150:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8150:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1604, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8170:7:6", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "8162:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8162:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8149:29:6" + }, + "returnParameters": { + "id": 1606, + "nodeType": "ParameterList", + "parameters": [], + "src": "8196:0:6" + }, + "scope": 2046, + "src": "8131:108:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1642, + "nodeType": "Block", + "src": "8574:195:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1625, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "8590:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1626, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "8594:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1624, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "8584:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8584:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1628, + "nodeType": "ExpressionStatement", + "src": "8584:18:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8664:1:6", + "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": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8656:7:6", + "typeDescriptions": {} + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8656:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1635, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "8668:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1636, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "8672:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1637, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "8681:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1630, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "8633:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8633:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8700:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8612:150:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1641, + "nodeType": "ExpressionStatement", + "src": "8612:150:6" + } + ] + }, + "documentation": { + "id": 1615, + "nodeType": "StructuredDocumentation", + "src": "8245:210:6", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1643, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "8469:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1617, + "mutability": "mutable", + "name": "to", + "nameLocation": "8496:2:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8488:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8488:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8516:7:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8508:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8508:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "data", + "nameLocation": "8546:4:6", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "8533:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1620, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8533:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8478:78:6" + }, + "returnParameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "8574:0:6" + }, + "scope": 2046, + "src": "8460:309:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1719, + "nodeType": "Block", + "src": "9152:859:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1652, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9170:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9184:1:6", + "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": 1654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9176:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9176:7:6", + "typeDescriptions": {} + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9176:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9170:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9188:34:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 1651, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9162:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9162:61:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1660, + "nodeType": "ExpressionStatement", + "src": "9162:61:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9241:17:6", + "subExpression": { + "arguments": [ + { + "id": 1663, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9250:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1662, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "9242:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9242:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9260:30:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 1661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9233:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9233:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1668, + "nodeType": "ExpressionStatement", + "src": "9233:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9331:1:6", + "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": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9323:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9323:7:6", + "typeDescriptions": {} + } + }, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9323:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1674, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9335:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1675, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9339:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9348:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1669, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "9302:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9302:48:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1678, + "nodeType": "ExpressionStatement", + "src": "9302:48:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9445:17:6", + "subExpression": { + "arguments": [ + { + "id": 1681, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9454:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1680, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "9446:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9446:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9464:30:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 1679, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9437:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9437:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1686, + "nodeType": "ExpressionStatement", + "src": "9437:58:6" + }, + { + "id": 1693, + "nodeType": "UncheckedBlock", + "src": "9506:360:6", + "statements": [ + { + "expression": { + "id": 1691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1687, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "9837:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1689, + "indexExpression": { + "id": 1688, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9847:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9837:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9854:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9837:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1692, + "nodeType": "ExpressionStatement", + "src": "9837:18:6" + } + ] + }, + { + "expression": { + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1694, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "9876:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1696, + "indexExpression": { + "id": 1695, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9884:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9876:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1697, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9895:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1699, + "nodeType": "ExpressionStatement", + "src": "9876:21:6" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:6", + "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": 1702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1701, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:6", + "typeDescriptions": {} + } + }, + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1705, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9934:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1706, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9938:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1700, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "9913:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9913:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1708, + "nodeType": "EmitStatement", + "src": "9908:38:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9985:1:6", + "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": 1711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9977:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9977:7:6", + "typeDescriptions": {} + } + }, + "id": 1713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9977:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1714, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1646, + "src": "9989:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1715, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "9993:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10002:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1709, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "9957:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9957:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1718, + "nodeType": "ExpressionStatement", + "src": "9957:47:6" + } + ] + }, + "documentation": { + "id": 1644, + "nodeType": "StructuredDocumentation", + "src": "8775:311:6", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 1720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "9100:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "to", + "nameLocation": "9114:2:6", + "nodeType": "VariableDeclaration", + "scope": 1720, + "src": "9106:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9106:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1648, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "9126:7:6", + "nodeType": "VariableDeclaration", + "scope": 1720, + "src": "9118:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9118:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9105:29:6" + }, + "returnParameters": { + "id": 1650, + "nodeType": "ParameterList", + "parameters": [], + "src": "9152:0:6" + }, + "scope": 2046, + "src": "9091:920:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1786, + "nodeType": "Block", + "src": "10386:713:6", + "statements": [ + { + "assignments": [ + 1727 + ], + "declarations": [ + { + "constant": false, + "id": 1727, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10404:5:6", + "nodeType": "VariableDeclaration", + "scope": 1786, + "src": "10396:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10396:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1732, + "initialValue": { + "arguments": [ + { + "id": 1730, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10427:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1728, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "10412:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10419:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "10412:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10412:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10396:39:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1734, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10467:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10482:1:6", + "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": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10474:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10474:7:6", + "typeDescriptions": {} + } + }, + "id": 1738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10474:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1739, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10486:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10495:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1733, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "10446:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10446:51:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1742, + "nodeType": "ExpressionStatement", + "src": "10446:51:6" + }, + { + "expression": { + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1743, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10599:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1746, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10622:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1744, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "10607:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10614:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "10607:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10607:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10599:31:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1749, + "nodeType": "ExpressionStatement", + "src": "10599:31:6" + }, + { + "expression": { + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10668:31:6", + "subExpression": { + "baseExpression": { + "id": 1750, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "10675:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1752, + "indexExpression": { + "id": 1751, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10691:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10675:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "10668:31:6" + }, + { + "id": 1761, + "nodeType": "UncheckedBlock", + "src": "10710:237:6", + "statements": [ + { + "expression": { + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1755, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "10915:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1757, + "indexExpression": { + "id": 1756, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "10925:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10915:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 1758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10935:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10915:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1760, + "nodeType": "ExpressionStatement", + "src": "10915:21:6" + } + ] + }, + { + "expression": { + "id": 1765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "10956:23:6", + "subExpression": { + "baseExpression": { + "id": 1762, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "10963:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1764, + "indexExpression": { + "id": 1763, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "10971:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10963:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1766, + "nodeType": "ExpressionStatement", + "src": "10956:23:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1768, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "11004:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11019:1:6", + "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": 1770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11011:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11011:7:6", + "typeDescriptions": {} + } + }, + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11011:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1773, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "11023:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1767, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "10995:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10995:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1775, + "nodeType": "EmitStatement", + "src": "10990:41:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1777, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "11062:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11077:1:6", + "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": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11069:7:6", + "typeDescriptions": {} + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11069:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1782, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1723, + "src": "11081:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11090:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1776, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "11042:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11042:50:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1785, + "nodeType": "ExpressionStatement", + "src": "11042:50:6" + } + ] + }, + "documentation": { + "id": 1721, + "nodeType": "StructuredDocumentation", + "src": "10017:315:6", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "10346:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10360:7:6", + "nodeType": "VariableDeclaration", + "scope": 1787, + "src": "10352:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10352:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10351:17:6" + }, + "returnParameters": { + "id": 1725, + "nodeType": "ParameterList", + "parameters": [], + "src": "10386:0:6" + }, + "scope": 2046, + "src": "10337:762:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1871, + "nodeType": "Block", + "src": "11532:1124:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1800, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11565:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1798, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "11550:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11557:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "11550:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11550:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1802, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11577:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11550:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11583:39:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + }, + "value": "ERC721: transfer from incorrect owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + } + ], + "id": 1797, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11542:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11542:81:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1806, + "nodeType": "ExpressionStatement", + "src": "11542:81:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1808, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "11641:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11655:1:6", + "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": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11647:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11647:7:6", + "typeDescriptions": {} + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11647:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11641:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11659:38:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 1807, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11633:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11633:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1816, + "nodeType": "ExpressionStatement", + "src": "11633:65:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1818, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11730:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1819, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "11736:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1820, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11740:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11749:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1817, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "11709:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11709:42:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1823, + "nodeType": "ExpressionStatement", + "src": "11709:42:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1827, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "11866:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1825, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "11851:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11858:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "11851:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11851:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1829, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "11878:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11851:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:39:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + }, + "value": "ERC721: transfer from incorrect owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" + } + ], + "id": 1824, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11843:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11843:81:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "11843:81:6" + }, + { + "expression": { + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "11986:31:6", + "subExpression": { + "baseExpression": { + "id": 1834, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "11993:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1836, + "indexExpression": { + "id": 1835, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12009:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11993:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1838, + "nodeType": "ExpressionStatement", + "src": "11986:31:6" + }, + { + "id": 1851, + "nodeType": "UncheckedBlock", + "src": "12028:496:6", + "statements": [ + { + "expression": { + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1839, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "12461:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1841, + "indexExpression": { + "id": 1840, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12471:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12461:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12480:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12461:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1844, + "nodeType": "ExpressionStatement", + "src": "12461:20:6" + }, + { + "expression": { + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1845, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "12495:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1847, + "indexExpression": { + "id": 1846, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12505:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12495:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12512:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12495:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1850, + "nodeType": "ExpressionStatement", + "src": "12495:18:6" + } + ] + }, + { + "expression": { + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1852, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "12533:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1854, + "indexExpression": { + "id": 1853, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12541:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12533:16:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1855, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12552:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12533:21:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1857, + "nodeType": "ExpressionStatement", + "src": "12533:21:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1859, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12579:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1860, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12585:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1861, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12589:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1858, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2061, + "src": "12570:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12570:27:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1863, + "nodeType": "EmitStatement", + "src": "12565:32:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1865, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "12628:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1792, + "src": "12634:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1867, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "12638:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12647:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1864, + "name": "_afterTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "12608:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12608:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1870, + "nodeType": "ExpressionStatement", + "src": "12608:41:6" + } + ] + }, + "documentation": { + "id": 1788, + "nodeType": "StructuredDocumentation", + "src": "11105:313:6", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1872, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "11432:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1790, + "mutability": "mutable", + "name": "from", + "nameLocation": "11459:4:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11451:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11451:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1792, + "mutability": "mutable", + "name": "to", + "nameLocation": "11481:2:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11473:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1791, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11473:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1794, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11501:7:6", + "nodeType": "VariableDeclaration", + "scope": 1872, + "src": "11493:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1793, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11493:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11441:73:6" + }, + "returnParameters": { + "id": 1796, + "nodeType": "ParameterList", + "parameters": [], + "src": "11532:0:6" + }, + "scope": 2046, + "src": "11423:1233:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1895, + "nodeType": "Block", + "src": "12832:107:6", + "statements": [ + { + "expression": { + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1880, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "12842:15:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1882, + "indexExpression": { + "id": 1881, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12858:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12842:24:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1883, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "12869:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12842:29:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1885, + "nodeType": "ExpressionStatement", + "src": "12842:29:6" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 1889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12910:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1887, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "12895:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$2046_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12902:7:6", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1265, + "src": "12895:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12895:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1891, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "12920:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1892, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "12924:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1886, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2070, + "src": "12886:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12886:46:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1894, + "nodeType": "EmitStatement", + "src": "12881:51:6" + } + ] + }, + "documentation": { + "id": 1873, + "nodeType": "StructuredDocumentation", + "src": "12662:101:6", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 1896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "12777:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "to", + "nameLocation": "12794:2:6", + "nodeType": "VariableDeclaration", + "scope": 1896, + "src": "12786:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12786:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12806:7:6", + "nodeType": "VariableDeclaration", + "scope": 1896, + "src": "12798:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12785:29:6" + }, + "returnParameters": { + "id": 1879, + "nodeType": "ParameterList", + "parameters": [], + "src": "12832:0:6" + }, + "scope": 2046, + "src": "12768:171:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1927, + "nodeType": "Block", + "src": "13198:184:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1907, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13216:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1908, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13225:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13216:17:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13235:27:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 1906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13208:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13208:55:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1912, + "nodeType": "ExpressionStatement", + "src": "13208:55:6" + }, + { + "expression": { + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1913, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "13273:18:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1916, + "indexExpression": { + "id": 1914, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13292:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13273:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1917, + "indexExpression": { + "id": 1915, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13299:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13273:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1918, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "13311:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13273:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1920, + "nodeType": "ExpressionStatement", + "src": "13273:46:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1922, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "13349:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1923, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "13356:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1924, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "13366:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1921, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "13334:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13334:41:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1926, + "nodeType": "EmitStatement", + "src": "13329:46:6" + } + ] + }, + "documentation": { + "id": 1897, + "nodeType": "StructuredDocumentation", + "src": "12945:125:6", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event." + }, + "id": 1928, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "13084:18:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1899, + "mutability": "mutable", + "name": "owner", + "nameLocation": "13120:5:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13112:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13112:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13143:8:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13135:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13135:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "approved", + "nameLocation": "13166:8:6", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "13161:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1902, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13161:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13102:78:6" + }, + "returnParameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "13198:0:6" + }, + "scope": 2046, + "src": "13075:307:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1941, + "nodeType": "Block", + "src": "13529:70:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1936, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1931, + "src": "13555:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1935, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "13547:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13547:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13565:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + }, + "value": "ERC721: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "typeString": "literal_string \"ERC721: invalid token ID\"" + } + ], + "id": 1934, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13539:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1940, + "nodeType": "ExpressionStatement", + "src": "13539:53:6" + } + ] + }, + "documentation": { + "id": 1929, + "nodeType": "StructuredDocumentation", + "src": "13388:73:6", + "text": " @dev Reverts if the `tokenId` has not been minted yet." + }, + "id": 1942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireMinted", + "nameLocation": "13475:14:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13498:7:6", + "nodeType": "VariableDeclaration", + "scope": 1942, + "src": "13490:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13490:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13489:17:6" + }, + "returnParameters": { + "id": 1933, + "nodeType": "ParameterList", + "parameters": [], + "src": "13529:0:6" + }, + "scope": 2046, + "src": "13466:133:6", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2003, + "nodeType": "Block", + "src": "14306:676:6", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1956, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14320:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14323:10:6", + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 2225, + "src": "14320:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14320:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2001, + "nodeType": "Block", + "src": "14940:36:6", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14961:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1955, + "id": 2000, + "nodeType": "Return", + "src": "14954:11:6" + } + ] + }, + "id": 2002, + "nodeType": "IfStatement", + "src": "14316:660:6", + "trueBody": { + "id": 1998, + "nodeType": "Block", + "src": "14337:597:6", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1978, + "nodeType": "Block", + "src": "14451:91:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1972, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1970, + "src": "14476:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 1973, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "14486:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2180_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14502:16:6", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 2179, + "src": "14486:32:6", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14519:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "14486:41:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "14476:51:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1955, + "id": 1977, + "nodeType": "Return", + "src": "14469:58:6" + } + ] + }, + "errorName": "", + "id": 1979, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1970, + "mutability": "mutable", + "name": "retval", + "nameLocation": "14443:6:6", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "14436:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1969, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "14436:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "14435:15:6" + }, + "src": "14427:115:6" + }, + { + "block": { + "id": 1995, + "nodeType": "Block", + "src": "14571:353:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1983, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "14593:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14600:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14593:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14610:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14593:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1993, + "nodeType": "Block", + "src": "14720:190:6", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "14806:86:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:2:6", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nodeType": "YulIdentifier", + "src": "14847:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14839:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14839:15:6" + }, + { + "arguments": [ + { + "name": "reason", + "nodeType": "YulIdentifier", + "src": "14862:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "14856:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "14856:13:6" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14832:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14832:38:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14832:38:6" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 1981, + "isOffset": false, + "isSlot": false, + "src": "14847:6:6", + "valueSize": 1 + }, + { + "declaration": 1981, + "isOffset": false, + "isSlot": false, + "src": "14862:6:6", + "valueSize": 1 + } + ], + "id": 1992, + "nodeType": "InlineAssembly", + "src": "14797:95:6" + } + ] + }, + "id": 1994, + "nodeType": "IfStatement", + "src": "14589:321:6", + "trueBody": { + "id": 1991, + "nodeType": "Block", + "src": "14613:101:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 1988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14642:52:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 1987, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "14635:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14635:60:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1990, + "nodeType": "ExpressionStatement", + "src": "14635:60:6" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1996, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "reason", + "nameLocation": "14563:6:6", + "nodeType": "VariableDeclaration", + "scope": 1996, + "src": "14550:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1980, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14550:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14549:21:6" + }, + "src": "14543:381:6" + } + ], + "externalCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1963, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "14392:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14392:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1965, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1945, + "src": "14406:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1966, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "14412:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1967, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "14421:4:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1960, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14371:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1959, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "14355:15:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$2180_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14355:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$2180", + "typeString": "contract IERC721Receiver" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14375:16:6", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 2179, + "src": "14355:36:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14355:71:6", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1997, + "nodeType": "TryStatement", + "src": "14351:573:6" + } + ] + } + } + ] + }, + "documentation": { + "id": 1943, + "nodeType": "StructuredDocumentation", + "src": "13605:541:6", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 2004, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nameLocation": "14160:22:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "from", + "nameLocation": "14200:4:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14192:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14192:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1947, + "mutability": "mutable", + "name": "to", + "nameLocation": "14222:2:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14214:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1946, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14214:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14242:7:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14234:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14234:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "mutability": "mutable", + "name": "data", + "nameLocation": "14272:4:6", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14259:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1950, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14259:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14182:100:6" + }, + "returnParameters": { + "id": 1955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2004, + "src": "14300:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1953, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14300:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14299:6:6" + }, + "scope": 2046, + "src": "14151:831:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2016, + "nodeType": "Block", + "src": "15850:2:6", + "statements": [] + }, + "documentation": { + "id": 2005, + "nodeType": "StructuredDocumentation", + "src": "14988:705:6", + "text": " @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 2017, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nameLocation": "15707:20:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "from", + "nameLocation": "15745:4:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15737:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15737:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "to", + "nameLocation": "15767:2:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15759:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2008, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15759:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2011, + "mutability": "mutable", + "name": "firstTokenId", + "nameLocation": "15787:12:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15779:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15779:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2013, + "mutability": "mutable", + "name": "batchSize", + "nameLocation": "15817:9:6", + "nodeType": "VariableDeclaration", + "scope": 2017, + "src": "15809:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15809:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15727:105:6" + }, + "returnParameters": { + "id": 2015, + "nodeType": "ParameterList", + "parameters": [], + "src": "15850:0:6" + }, + "scope": 2046, + "src": "15698:154:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2029, + "nodeType": "Block", + "src": "16709:2:6", + "statements": [] + }, + "documentation": { + "id": 2018, + "nodeType": "StructuredDocumentation", + "src": "15858:695:6", + "text": " @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 2030, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterTokenTransfer", + "nameLocation": "16567:19:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2020, + "mutability": "mutable", + "name": "from", + "nameLocation": "16604:4:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16596:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2019, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16596:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2022, + "mutability": "mutable", + "name": "to", + "nameLocation": "16626:2:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16618:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16618:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2024, + "mutability": "mutable", + "name": "firstTokenId", + "nameLocation": "16646:12:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16638:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16638:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2026, + "mutability": "mutable", + "name": "batchSize", + "nameLocation": "16676:9:6", + "nodeType": "VariableDeclaration", + "scope": 2030, + "src": "16668:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16668:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16586:105:6" + }, + "returnParameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [], + "src": "16709:0:6" + }, + "scope": 2046, + "src": "16558:153:6", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2044, + "nodeType": "Block", + "src": "17260:45:6", + "statements": [ + { + "expression": { + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2038, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1155, + "src": "17270:9:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2040, + "indexExpression": { + "id": 2039, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "17280:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17270:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 2041, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "17292:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17270:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2043, + "nodeType": "ExpressionStatement", + "src": "17270:28:6" + } + ] + }, + "documentation": { + "id": 2031, + "nodeType": "StructuredDocumentation", + "src": "16717:409:6", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n that `ownerOf(tokenId)` is `a`." + }, + "id": 2045, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__unsafe_increaseBalance", + "nameLocation": "17193:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "account", + "nameLocation": "17226:7:6", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "17218:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17218:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2035, + "mutability": "mutable", + "name": "amount", + "nameLocation": "17243:6:6", + "nodeType": "VariableDeclaration", + "scope": 2045, + "src": "17235:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17235:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17217:33:6" + }, + "returnParameters": { + "id": 2037, + "nodeType": "ParameterList", + "parameters": [], + "src": "17260:0:6" + }, + "scope": 2046, + "src": "17184:121:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2047, + "src": "628:16679:6", + "usedErrors": [] + } + ], + "src": "107:17201:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ] + }, + "id": 2163, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2048, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "108:23:7" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 2049, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2163, + "sourceUnit": 2845, + "src": "133:47:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2051, + "name": "IERC165", + "nameLocations": [ + "271:7:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "271:7:7" + }, + "id": 2052, + "nodeType": "InheritanceSpecifier", + "src": "271:7:7" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2050, + "nodeType": "StructuredDocumentation", + "src": "182:67:7", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 2162, + "linearizedBaseContracts": [ + 2162, + 2844 + ], + "name": "IERC721", + "nameLocation": "260:7:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2053, + "nodeType": "StructuredDocumentation", + "src": "285:88:7", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 2061, + "name": "Transfer", + "nameLocation": "384:8:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2055, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "409:4:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "393:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "393:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2057, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "431:2:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "415:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2056, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "415:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2059, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "451:7:7", + "nodeType": "VariableDeclaration", + "scope": 2061, + "src": "435:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "392:67:7" + }, + "src": "378:82:7" + }, + { + "anonymous": false, + "documentation": { + "id": 2062, + "nodeType": "StructuredDocumentation", + "src": "466:94:7", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 2070, + "name": "Approval", + "nameLocation": "571:8:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2064, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "596:5:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "580:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2063, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2066, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "619:8:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "603:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2068, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "645:7:7", + "nodeType": "VariableDeclaration", + "scope": 2070, + "src": "629:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "629:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "579:74:7" + }, + "src": "565:89:7" + }, + { + "anonymous": false, + "documentation": { + "id": 2071, + "nodeType": "StructuredDocumentation", + "src": "660:117:7", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 2079, + "name": "ApprovalForAll", + "nameLocation": "788:14:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2073, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "819:5:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "803:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "803:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2075, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "842:8:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "826:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "826:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2077, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "857:8:7", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "852:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "852:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "802:64:7" + }, + "src": "782:85:7" + }, + { + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "873:76:7", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 2087, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "963:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "owner", + "nameLocation": "981:5:7", + "nodeType": "VariableDeclaration", + "scope": 2087, + "src": "973:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "973:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "972:15:7" + }, + "returnParameters": { + "id": 2086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2085, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1019:7:7", + "nodeType": "VariableDeclaration", + "scope": 2087, + "src": "1011:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1010:17:7" + }, + "scope": 2162, + "src": "954:74:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2088, + "nodeType": "StructuredDocumentation", + "src": "1034:131:7", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 2095, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1179:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2090, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1195:7:7", + "nodeType": "VariableDeclaration", + "scope": 2095, + "src": "1187:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1187:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1186:17:7" + }, + "returnParameters": { + "id": 2094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2093, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1235:5:7", + "nodeType": "VariableDeclaration", + "scope": 2095, + "src": "1227:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2092, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1227:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1226:15:7" + }, + "scope": 2162, + "src": "1170:72:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2096, + "nodeType": "StructuredDocumentation", + "src": "1248:556:7", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 2107, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1818:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2098, + "mutability": "mutable", + "name": "from", + "nameLocation": "1852:4:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1844:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1844:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "to", + "nameLocation": "1874:2:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1866:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1866:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2102, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1894:7:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1886:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2104, + "mutability": "mutable", + "name": "data", + "nameLocation": "1926:4:7", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "1911:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2103, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1911:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1834:102:7" + }, + "returnParameters": { + "id": 2106, + "nodeType": "ParameterList", + "parameters": [], + "src": "1945:0:7" + }, + "scope": 2162, + "src": "1809:137:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2108, + "nodeType": "StructuredDocumentation", + "src": "1952:687:7", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 2117, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2653:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2110, + "mutability": "mutable", + "name": "from", + "nameLocation": "2687:4:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2679:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2679:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "to", + "nameLocation": "2709:2:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2701:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2701:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2729:7:7", + "nodeType": "VariableDeclaration", + "scope": 2117, + "src": "2721:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2721:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2669:73:7" + }, + "returnParameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [], + "src": "2751:0:7" + }, + "scope": 2162, + "src": "2644:108:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2118, + "nodeType": "StructuredDocumentation", + "src": "2758:732:7", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 2127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3504:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "from", + "nameLocation": "3534:4:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3526:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3526:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "mutability": "mutable", + "name": "to", + "nameLocation": "3556:2:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3548:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3548:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3576:7:7", + "nodeType": "VariableDeclaration", + "scope": 2127, + "src": "3568:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3568:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3516:73:7" + }, + "returnParameters": { + "id": 2126, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:0:7" + }, + "scope": 2162, + "src": "3495:104:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2128, + "nodeType": "StructuredDocumentation", + "src": "3605:452:7", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 2135, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4071:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "to", + "nameLocation": "4087:2:7", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "4079:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4079:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4099:7:7", + "nodeType": "VariableDeclaration", + "scope": 2135, + "src": "4091:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4078:29:7" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:7" + }, + "scope": 2162, + "src": "4062:55:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2136, + "nodeType": "StructuredDocumentation", + "src": "4123:309:7", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 2143, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4446:17:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4472:8:7", + "nodeType": "VariableDeclaration", + "scope": 2143, + "src": "4464:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4464:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2140, + "mutability": "mutable", + "name": "_approved", + "nameLocation": "4487:9:7", + "nodeType": "VariableDeclaration", + "scope": 2143, + "src": "4482:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2139, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4482:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4463:34:7" + }, + "returnParameters": { + "id": 2142, + "nodeType": "ParameterList", + "parameters": [], + "src": "4506:0:7" + }, + "scope": 2162, + "src": "4437:70:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2144, + "nodeType": "StructuredDocumentation", + "src": "4513:139:7", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 2151, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4666:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2146, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4686:7:7", + "nodeType": "VariableDeclaration", + "scope": 2151, + "src": "4678:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4678:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4677:17:7" + }, + "returnParameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2149, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4726:8:7", + "nodeType": "VariableDeclaration", + "scope": 2151, + "src": "4718:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4718:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4717:18:7" + }, + "scope": 2162, + "src": "4657:79:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2152, + "nodeType": "StructuredDocumentation", + "src": "4742:138:7", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 2161, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4894:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4919:5:7", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4911:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4911:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2156, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4934:8:7", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4926:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4926:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4910:33:7" + }, + "returnParameters": { + "id": 2160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2159, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "4967:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2158, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4967:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4966:6:7" + }, + "scope": 2162, + "src": "4885:88:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2163, + "src": "250:4725:7", + "usedErrors": [] + } + ], + "src": "108:4868:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 2180 + ] + }, + "id": 2181, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2164, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "116:23:8" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2165, + "nodeType": "StructuredDocumentation", + "src": "141:152:8", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 2180, + "linearizedBaseContracts": [ + 2180 + ], + "name": "IERC721Receiver", + "nameLocation": "304:15:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2166, + "nodeType": "StructuredDocumentation", + "src": "326:493:8", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 2179, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "833:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2168, + "mutability": "mutable", + "name": "operator", + "nameLocation": "867:8:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "859:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "859:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2170, + "mutability": "mutable", + "name": "from", + "nameLocation": "893:4:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "885:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2172, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "915:7:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "907:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "907:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2174, + "mutability": "mutable", + "name": "data", + "nameLocation": "947:4:8", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "932:19:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2173, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "932:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "849:108:8" + }, + "returnParameters": { + "id": 2178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2177, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2179, + "src": "976:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2176, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "975:8:8" + }, + "scope": 2180, + "src": "824:160:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2181, + "src": "294:692:8", + "usedErrors": [] + } + ], + "src": "116:871:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ] + }, + "id": 2208, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2182, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "112:23:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 2183, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2208, + "sourceUnit": 2163, + "src": "137:24:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2185, + "name": "IERC721", + "nameLocations": [ + "326:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "326:7:9" + }, + "id": 2186, + "nodeType": "InheritanceSpecifier", + "src": "326:7:9" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "163:133:9", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 2207, + "linearizedBaseContracts": [ + 2207, + 2162, + 2844 + ], + "name": "IERC721Metadata", + "nameLocation": "307:15:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2187, + "nodeType": "StructuredDocumentation", + "src": "340:58:9", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 2192, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "412:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [], + "src": "416:2:9" + }, + "returnParameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2192, + "src": "442:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2189, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "442:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "441:15:9" + }, + "scope": 2207, + "src": "403:54:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2193, + "nodeType": "StructuredDocumentation", + "src": "463:60:9", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 2198, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "537:6:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2194, + "nodeType": "ParameterList", + "parameters": [], + "src": "543:2:9" + }, + "returnParameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2198, + "src": "569:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2195, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "568:15:9" + }, + "scope": 2207, + "src": "528:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2199, + "nodeType": "StructuredDocumentation", + "src": "590:90:9", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 2206, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "694:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "711:7:9", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "703:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "703:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "702:17:9" + }, + "returnParameters": { + "id": 2205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2204, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "743:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2203, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "743:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "742:15:9" + }, + "scope": 2207, + "src": "685:73:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2208, + "src": "297:463:9", + "usedErrors": [] + } + ], + "src": "112:649:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Address.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 2537 + ] + }, + "id": 2538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2209, + "literals": [ + "solidity", + "^", + "0.8", + ".1" + ], + "nodeType": "PragmaDirective", + "src": "101:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2210, + "nodeType": "StructuredDocumentation", + "src": "126:67:10", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 2537, + "linearizedBaseContracts": [ + 2537 + ], + "name": "Address", + "nameLocation": "202:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2224, + "nodeType": "Block", + "src": "1241:254:10", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2218, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2213, + "src": "1465:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1473:4:10", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "1465:12:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1478:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1465:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1487:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1465:23:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2217, + "id": 2223, + "nodeType": "Return", + "src": "1458:30:10" + } + ] + }, + "documentation": { + "id": 2211, + "nodeType": "StructuredDocumentation", + "src": "216:954:10", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ====" + }, + "id": 2225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nameLocation": "1184:10:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2213, + "mutability": "mutable", + "name": "account", + "nameLocation": "1203:7:10", + "nodeType": "VariableDeclaration", + "scope": 2225, + "src": "1195:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1195:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1194:17:10" + }, + "returnParameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2225, + "src": "1235:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2215, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1235:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1234:6:10" + }, + "scope": 2537, + "src": "1175:320:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2258, + "nodeType": "Block", + "src": "2483:241:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2236, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2509:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + ], + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2501:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2501:7:10", + "typeDescriptions": {} + } + }, + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2501:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2515:7:10", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2501:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2239, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "2526:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2501:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2534:31:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 2233, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2493:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2493:73:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2243, + "nodeType": "ExpressionStatement", + "src": "2493:73:10" + }, + { + "assignments": [ + 2245, + null + ], + "declarations": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "success", + "nameLocation": "2583:7:10", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "2578:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2578:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2252, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2626:2:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 2246, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "2596:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2606:4:10", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2596:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2248, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "2618:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2596:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2596:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2577:52:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2254, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "2647:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2656:60:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 2253, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2639:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:78:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2257, + "nodeType": "ExpressionStatement", + "src": "2639:78:10" + } + ] + }, + "documentation": { + "id": 2226, + "nodeType": "StructuredDocumentation", + "src": "1501:906:10", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 2259, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "2421:9:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2447:9:10", + "nodeType": "VariableDeclaration", + "scope": 2259, + "src": "2431:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2431:15:10", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2230, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2466:6:10", + "nodeType": "VariableDeclaration", + "scope": 2259, + "src": "2458:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2458:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2430:43:10" + }, + "returnParameters": { + "id": 2232, + "nodeType": "ParameterList", + "parameters": [], + "src": "2483:0:10" + }, + "scope": 2537, + "src": "2412:312:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2276, + "nodeType": "Block", + "src": "3555:96:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2270, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "3594:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2271, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2264, + "src": "3602:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3611:32:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 2269, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "3572:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3572:72:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2268, + "id": 2275, + "nodeType": "Return", + "src": "3565:79:10" + } + ] + }, + "documentation": { + "id": 2260, + "nodeType": "StructuredDocumentation", + "src": "2730:731:10", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 2277, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3475:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2262, + "mutability": "mutable", + "name": "target", + "nameLocation": "3496:6:10", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3488:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3488:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "data", + "nameLocation": "3517:4:10", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3504:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2263, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3504:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3487:35:10" + }, + "returnParameters": { + "id": 2268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2277, + "src": "3541:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2266, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3541:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3540:14:10" + }, + "scope": 2537, + "src": "3466:185:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "4020:76:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2290, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2280, + "src": "4059:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2291, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2282, + "src": "4067:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4073:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 2293, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2284, + "src": "4076:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2289, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "4037:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4037:52:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2288, + "id": 2295, + "nodeType": "Return", + "src": "4030:59:10" + } + ] + }, + "documentation": { + "id": 2278, + "nodeType": "StructuredDocumentation", + "src": "3657:211:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2297, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3882:12:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2280, + "mutability": "mutable", + "name": "target", + "nameLocation": "3912:6:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3904:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2279, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2282, + "mutability": "mutable", + "name": "data", + "nameLocation": "3941:4:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3928:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2281, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3928:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2284, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "3969:12:10", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "3955:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2283, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3955:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3894:93:10" + }, + "returnParameters": { + "id": 2288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "4006:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2286, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4006:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4005:14:10" + }, + "scope": 2537, + "src": "3873:223:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2316, + "nodeType": "Block", + "src": "4601:111:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2310, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4640:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2311, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2302, + "src": "4648:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2312, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2304, + "src": "4654:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4661:43:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 2309, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2317, + 2361 + ], + "referencedDeclaration": 2361, + "src": "4618:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4618:87:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2308, + "id": 2315, + "nodeType": "Return", + "src": "4611:94:10" + } + ] + }, + "documentation": { + "id": 2298, + "nodeType": "StructuredDocumentation", + "src": "4102:351:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 2317, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4467:21:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2300, + "mutability": "mutable", + "name": "target", + "nameLocation": "4506:6:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4498:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4498:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2302, + "mutability": "mutable", + "name": "data", + "nameLocation": "4535:4:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4522:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2301, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4522:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2304, + "mutability": "mutable", + "name": "value", + "nameLocation": "4557:5:10", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4549:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4549:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4488:80:10" + }, + "returnParameters": { + "id": 2308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "4587:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2306, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4587:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4586:14:10" + }, + "scope": 2537, + "src": "4458:254:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2360, + "nodeType": "Block", + "src": "5139:267:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2334, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5165:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$2537", + "typeString": "library Address" + } + ], + "id": 2333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5157:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5157:7:10", + "typeDescriptions": {} + } + }, + "id": 2335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5157:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5171:7:10", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "5157:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "5182:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5157:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 2339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5189:40:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 2331, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5149:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5149:81:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2341, + "nodeType": "ExpressionStatement", + "src": "5149:81:10" + }, + { + "assignments": [ + 2343, + 2345 + ], + "declarations": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "success", + "nameLocation": "5246:7:10", + "nodeType": "VariableDeclaration", + "scope": 2360, + "src": "5241:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5241:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5268:10:10", + "nodeType": "VariableDeclaration", + "scope": 2360, + "src": "5255:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2344, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5255:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2352, + "initialValue": { + "arguments": [ + { + "id": 2350, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "5308:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2346, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2320, + "src": "5282:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5289:4:10", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5282:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2348, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2324, + "src": "5301:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5282:25:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5282:31:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5240:73:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2354, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2320, + "src": "5357:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2355, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "5365:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2356, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "5374:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2357, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "5386:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2353, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "5330:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5330:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2330, + "id": 2359, + "nodeType": "Return", + "src": "5323:76:10" + } + ] + }, + "documentation": { + "id": 2318, + "nodeType": "StructuredDocumentation", + "src": "4718:237:10", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2361, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4969:21:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2320, + "mutability": "mutable", + "name": "target", + "nameLocation": "5008:6:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5000:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5000:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2322, + "mutability": "mutable", + "name": "data", + "nameLocation": "5037:4:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5024:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5024:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2324, + "mutability": "mutable", + "name": "value", + "nameLocation": "5059:5:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5051:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5051:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5088:12:10", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5074:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2325, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5074:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4990:116:10" + }, + "returnParameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2361, + "src": "5125:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2328, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5125:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5124:14:10" + }, + "scope": 2537, + "src": "4960:446:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2377, + "nodeType": "Block", + "src": "5683:97:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2372, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "5719:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2373, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2366, + "src": "5727:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5733:39:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 2371, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2378, + 2407 + ], + "referencedDeclaration": 2407, + "src": "5700:18:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5700:73:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2370, + "id": 2376, + "nodeType": "Return", + "src": "5693:80:10" + } + ] + }, + "documentation": { + "id": 2362, + "nodeType": "StructuredDocumentation", + "src": "5412:166:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5592:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "target", + "nameLocation": "5619:6:10", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5611:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5611:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2366, + "mutability": "mutable", + "name": "data", + "nameLocation": "5640:4:10", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5627:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2365, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5627:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5610:35:10" + }, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "5669:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5669:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5668:14:10" + }, + "scope": 2537, + "src": "5583:197:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2406, + "nodeType": "Block", + "src": "6122:168:10", + "statements": [ + { + "assignments": [ + 2391, + 2393 + ], + "declarations": [ + { + "constant": false, + "id": 2391, + "mutability": "mutable", + "name": "success", + "nameLocation": "6138:7:10", + "nodeType": "VariableDeclaration", + "scope": 2406, + "src": "6133:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2390, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6133:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "6160:10:10", + "nodeType": "VariableDeclaration", + "scope": 2406, + "src": "6147:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2392, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6147:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2398, + "initialValue": { + "arguments": [ + { + "id": 2396, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "6192:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2394, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "6174:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6181:10:10", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "6174:17:10", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6174:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6132:65:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2400, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "6241:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2401, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2391, + "src": "6249:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2402, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2393, + "src": "6258:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2403, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "6270:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2399, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "6214:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6214:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2389, + "id": 2405, + "nodeType": "Return", + "src": "6207:76:10" + } + ] + }, + "documentation": { + "id": 2379, + "nodeType": "StructuredDocumentation", + "src": "5786:173:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5973:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2381, + "mutability": "mutable", + "name": "target", + "nameLocation": "6009:6:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6001:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6001:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2383, + "mutability": "mutable", + "name": "data", + "nameLocation": "6038:4:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6025:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2382, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6025:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2385, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6066:12:10", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6052:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2384, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6052:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5991:93:10" + }, + "returnParameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "6108:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2387, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6108:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6107:14:10" + }, + "scope": 2537, + "src": "5964:326:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2423, + "nodeType": "Block", + "src": "6566:101:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2418, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2410, + "src": "6604:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2419, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2412, + "src": "6612:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6618:41:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 2417, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2424, + 2453 + ], + "referencedDeclaration": 2453, + "src": "6583:20:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6583:77:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2416, + "id": 2422, + "nodeType": "Return", + "src": "6576:84:10" + } + ] + }, + "documentation": { + "id": 2408, + "nodeType": "StructuredDocumentation", + "src": "6296:168:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 2424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6478:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2410, + "mutability": "mutable", + "name": "target", + "nameLocation": "6507:6:10", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6499:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6499:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2412, + "mutability": "mutable", + "name": "data", + "nameLocation": "6528:4:10", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6515:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2411, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6515:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6498:35:10" + }, + "returnParameters": { + "id": 2416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2415, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "6552:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2414, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6552:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6551:14:10" + }, + "scope": 2537, + "src": "6469:198:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2452, + "nodeType": "Block", + "src": "7008:170:10", + "statements": [ + { + "assignments": [ + 2437, + 2439 + ], + "declarations": [ + { + "constant": false, + "id": 2437, + "mutability": "mutable", + "name": "success", + "nameLocation": "7024:7:10", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "7019:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2436, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7019:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7046:10:10", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "7033:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7033:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2444, + "initialValue": { + "arguments": [ + { + "id": 2442, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2429, + "src": "7080:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2440, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "7060:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7067:12:10", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "7060:19:10", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7060:25:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7018:67:10" + }, + { + "expression": { + "arguments": [ + { + "id": 2446, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2427, + "src": "7129:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2447, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "7137:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2448, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "7146:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2449, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2431, + "src": "7158:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2445, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2492, + "src": "7102:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bool,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7102:69:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2435, + "id": 2451, + "nodeType": "Return", + "src": "7095:76:10" + } + ] + }, + "documentation": { + "id": 2425, + "nodeType": "StructuredDocumentation", + "src": "6673:175:10", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 2453, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6862:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "mutability": "mutable", + "name": "target", + "nameLocation": "6900:6:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6892:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6892:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "mutability": "mutable", + "name": "data", + "nameLocation": "6929:4:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6916:17:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2428, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6916:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6957:12:10", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6943:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2430, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6943:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6882:93:10" + }, + "returnParameters": { + "id": 2435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2434, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2453, + "src": "6994:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6994:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6993:14:10" + }, + "scope": 2537, + "src": "6853:325:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2491, + "nodeType": "Block", + "src": "7660:434:10", + "statements": [ + { + "condition": { + "id": 2467, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2458, + "src": "7674:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2489, + "nodeType": "Block", + "src": "8030:58:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2485, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "8052:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2486, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "8064:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2484, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2536, + "src": "8044:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 2487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8044:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2488, + "nodeType": "ExpressionStatement", + "src": "8044:33:10" + } + ] + }, + "id": 2490, + "nodeType": "IfStatement", + "src": "7670:418:10", + "trueBody": { + "id": 2483, + "nodeType": "Block", + "src": "7683:341:10", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2468, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "7701:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7712:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7701:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7722:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7701:22:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2480, + "nodeType": "IfStatement", + "src": "7697:286:10", + "trueBody": { + "id": 2479, + "nodeType": "Block", + "src": "7725:258:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2474, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2456, + "src": "7927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2473, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2225, + "src": "7916:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7916:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7936:31:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 2472, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7908:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7908:60:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2478, + "nodeType": "ExpressionStatement", + "src": "7908:60:10" + } + ] + } + }, + { + "expression": { + "id": 2481, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2460, + "src": "8003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2466, + "id": 2482, + "nodeType": "Return", + "src": "7996:17:10" + } + ] + } + } + ] + }, + "documentation": { + "id": 2454, + "nodeType": "StructuredDocumentation", + "src": "7184:277:10", + "text": " @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._" + }, + "id": 2492, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "7475:26:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2456, + "mutability": "mutable", + "name": "target", + "nameLocation": "7519:6:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7511:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7511:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2458, + "mutability": "mutable", + "name": "success", + "nameLocation": "7540:7:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7535:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2457, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7535:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2460, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7570:10:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7557:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2459, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7557:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "7604:12:10", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7590:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7590:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7501:121:10" + }, + "returnParameters": { + "id": 2466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2465, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2492, + "src": "7646:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2464, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7646:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7645:14:10" + }, + "scope": 2537, + "src": "7466:628:10", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "8475:135:10", + "statements": [ + { + "condition": { + "id": 2504, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2495, + "src": "8489:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2513, + "nodeType": "Block", + "src": "8546:58:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2509, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "8568:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2510, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "8580:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2508, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2536, + "src": "8560:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory) pure" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8560:33:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2512, + "nodeType": "ExpressionStatement", + "src": "8560:33:10" + } + ] + }, + "id": 2514, + "nodeType": "IfStatement", + "src": "8485:119:10", + "trueBody": { + "id": 2507, + "nodeType": "Block", + "src": "8498:42:10", + "statements": [ + { + "expression": { + "id": 2505, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2497, + "src": "8519:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2503, + "id": 2506, + "nodeType": "Return", + "src": "8512:17:10" + } + ] + } + } + ] + }, + "documentation": { + "id": 2493, + "nodeType": "StructuredDocumentation", + "src": "8100:210:10", + "text": " @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._" + }, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "8324:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2495, + "mutability": "mutable", + "name": "success", + "nameLocation": "8355:7:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8350:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2494, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8350:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2497, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "8385:10:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8372:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2496, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8372:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2499, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "8419:12:10", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8405:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2498, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8405:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8340:97:10" + }, + "returnParameters": { + "id": 2503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "8461:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8461:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8460:14:10" + }, + "scope": 2537, + "src": "8315:295:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2535, + "nodeType": "Block", + "src": "8699:457:10", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2523, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "8775:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8786:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8775:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8795:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8775:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2533, + "nodeType": "Block", + "src": "9105:45:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2530, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "9126:12:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2529, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "9119:6:10", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9119:20:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "9119:20:10" + } + ] + }, + "id": 2534, + "nodeType": "IfStatement", + "src": "8771:379:10", + "trueBody": { + "id": 2528, + "nodeType": "Block", + "src": "8798:301:10", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "8956:133:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8974:40:10", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "9003:10:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8997:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "8997:17:10" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "8978:15:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9042:2:10", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "9046:10:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9038:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9038:19:10" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "9059:15:10" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9031:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "9031:44:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9031:44:10" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2518, + "isOffset": false, + "isSlot": false, + "src": "9003:10:10", + "valueSize": 1 + }, + { + "declaration": 2518, + "isOffset": false, + "isSlot": false, + "src": "9046:10:10", + "valueSize": 1 + } + ], + "id": 2527, + "nodeType": "InlineAssembly", + "src": "8947:142:10" + } + ] + } + } + ] + }, + "id": 2536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "8625:7:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "8646:10:10", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "8633:23:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2517, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8633:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2520, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "8672:12:10", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "8658:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2519, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8658:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8632:53:10" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [], + "src": "8699:0:10" + }, + "scope": 2537, + "src": "8616:540:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2538, + "src": "194:8964:10", + "usedErrors": [] + } + ], + "src": "101:9058:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 2559 + ] + }, + "id": 2560, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2539, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "86:23:11" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2540, + "nodeType": "StructuredDocumentation", + "src": "111:496:11", + "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": 2559, + "linearizedBaseContracts": [ + 2559 + ], + "name": "Context", + "nameLocation": "626:7:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2548, + "nodeType": "Block", + "src": "702:34:11", + "statements": [ + { + "expression": { + "expression": { + "id": 2545, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "719:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "723:6:11", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "719:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2544, + "id": 2547, + "nodeType": "Return", + "src": "712:17:11" + } + ] + }, + "id": 2549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "649:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2541, + "nodeType": "ParameterList", + "parameters": [], + "src": "659:2:11" + }, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "693:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "693:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "692:9:11" + }, + "scope": 2559, + "src": "640:96:11", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "809:32:11", + "statements": [ + { + "expression": { + "expression": { + "id": 2554, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "826:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "830:4:11", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "826:8:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 2553, + "id": 2556, + "nodeType": "Return", + "src": "819:15:11" + } + ] + }, + "id": 2558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "751:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [], + "src": "759:2:11" + }, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2558, + "src": "793:14:11", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2551, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "793:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "792:16:11" + }, + "scope": 2559, + "src": "742:99:11", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2560, + "src": "608:235:11", + "usedErrors": [] + } + ], + "src": "86:758:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "exportedSymbols": { + "Counters": [ + 2633 + ] + }, + "id": 2634, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2561, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "87:23:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Counters", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2562, + "nodeType": "StructuredDocumentation", + "src": "112:311:12", + "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" + }, + "fullyImplemented": true, + "id": 2633, + "linearizedBaseContracts": [ + 2633 + ], + "name": "Counters", + "nameLocation": "432:8:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Counters.Counter", + "id": 2565, + "members": [ + { + "constant": false, + "id": 2564, + "mutability": "mutable", + "name": "_value", + "nameLocation": "794:6:12", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "786:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "786:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Counter", + "nameLocation": "454:7:12", + "nodeType": "StructDefinition", + "scope": 2633, + "src": "447:374:12", + "visibility": "public" + }, + { + "body": { + "id": 2576, + "nodeType": "Block", + "src": "901:38:12", + "statements": [ + { + "expression": { + "expression": { + "id": 2573, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2568, + "src": "918:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "926:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "918:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2572, + "id": 2575, + "nodeType": "Return", + "src": "911:21:12" + } + ] + }, + "id": 2577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "current", + "nameLocation": "836:7:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2568, + "mutability": "mutable", + "name": "counter", + "nameLocation": "860:7:12", + "nodeType": "VariableDeclaration", + "scope": 2577, + "src": "844:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2567, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2566, + "name": "Counter", + "nameLocations": [ + "844:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "844:7:12" + }, + "referencedDeclaration": 2565, + "src": "844:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "843:25:12" + }, + "returnParameters": { + "id": 2572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2571, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2577, + "src": "892:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "891:9:12" + }, + "scope": 2633, + "src": "827:112:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2590, + "nodeType": "Block", + "src": "998:70:12", + "statements": [ + { + "id": 2589, + "nodeType": "UncheckedBlock", + "src": "1008:54:12", + "statements": [ + { + "expression": { + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2583, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "1032:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2585, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1040:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1032:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1032:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2588, + "nodeType": "ExpressionStatement", + "src": "1032:19:12" + } + ] + } + ] + }, + "id": 2591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increment", + "nameLocation": "954:9:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "counter", + "nameLocation": "980:7:12", + "nodeType": "VariableDeclaration", + "scope": 2591, + "src": "964:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2579, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2578, + "name": "Counter", + "nameLocations": [ + "964:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "964:7:12" + }, + "referencedDeclaration": 2565, + "src": "964:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "963:25:12" + }, + "returnParameters": { + "id": 2582, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:12" + }, + "scope": 2633, + "src": "945:123:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2618, + "nodeType": "Block", + "src": "1127:176:12", + "statements": [ + { + "assignments": [ + 2598 + ], + "declarations": [ + { + "constant": false, + "id": 2598, + "mutability": "mutable", + "name": "value", + "nameLocation": "1145:5:12", + "nodeType": "VariableDeclaration", + "scope": 2618, + "src": "1137:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2601, + "initialValue": { + "expression": { + "id": 2599, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2594, + "src": "1153:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1161:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1153:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1137:30:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2603, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "1185:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1193:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1185:9:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77", + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1196:29:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + }, + "value": "Counter: decrement overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", + "typeString": "literal_string \"Counter: decrement overflow\"" + } + ], + "id": 2602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1177:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1177:49:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2608, + "nodeType": "ExpressionStatement", + "src": "1177:49:12" + }, + { + "id": 2617, + "nodeType": "UncheckedBlock", + "src": "1236:61:12", + "statements": [ + { + "expression": { + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2609, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2594, + "src": "1260:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1268:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1260:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2612, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "1277:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1285:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1277:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1260:26:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2616, + "nodeType": "ExpressionStatement", + "src": "1260:26:12" + } + ] + } + ] + }, + "id": 2619, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decrement", + "nameLocation": "1083:9:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2594, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1109:7:12", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "1093:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2592, + "name": "Counter", + "nameLocations": [ + "1093:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "1093:7:12" + }, + "referencedDeclaration": 2565, + "src": "1093:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1092:25:12" + }, + "returnParameters": { + "id": 2596, + "nodeType": "ParameterList", + "parameters": [], + "src": "1127:0:12" + }, + "scope": 2633, + "src": "1074:229:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "1358:35:12", + "statements": [ + { + "expression": { + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2625, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "1368:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter storage pointer" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1376:6:12", + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2564, + "src": "1368:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1368:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2630, + "nodeType": "ExpressionStatement", + "src": "1368:18:12" + } + ] + }, + "id": 2632, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reset", + "nameLocation": "1318:5:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "counter", + "nameLocation": "1340:7:12", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "1324:23:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + }, + "typeName": { + "id": 2621, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2620, + "name": "Counter", + "nameLocations": [ + "1324:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2565, + "src": "1324:7:12" + }, + "referencedDeclaration": 2565, + "src": "1324:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2565_storage_ptr", + "typeString": "struct Counters.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1323:25:12" + }, + "returnParameters": { + "id": 2624, + "nodeType": "ParameterList", + "parameters": [], + "src": "1358:0:12" + }, + "scope": 2633, + "src": "1309:84:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2634, + "src": "424:971:12", + "usedErrors": [] + } + ], + "src": "87:1309:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 3709 + ], + "Strings": [ + 2808 + ] + }, + "id": 2809, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2635, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "101:23:13" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 2636, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2809, + "sourceUnit": 3710, + "src": "126:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2637, + "nodeType": "StructuredDocumentation", + "src": "153:34:13", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2808, + "linearizedBaseContracts": [ + 2808 + ], + "name": "Strings", + "nameLocation": "196:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2640, + "mutability": "constant", + "name": "_SYMBOLS", + "nameLocation": "235:8:13", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "210:54:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 2638, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "210:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 2639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "246:18:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2643, + "mutability": "constant", + "name": "_ADDRESS_LENGTH", + "nameLocation": "293:15:13", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "270:43:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "270:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "body": { + "id": 2690, + "nodeType": "Block", + "src": "486:625:13", + "statements": [ + { + "id": 2689, + "nodeType": "UncheckedBlock", + "src": "496:609:13", + "statements": [ + { + "assignments": [ + 2652 + ], + "declarations": [ + { + "constant": false, + "id": 2652, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "520:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2659, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2655, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "548:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2653, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3709, + "src": "537:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3709_$", + "typeString": "type(library Math)" + } + }, + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "542:5:13", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 3546, + "src": "537:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "537:17:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "537:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "520:38:13" + }, + { + "assignments": [ + 2661 + ], + "declarations": [ + { + "constant": false, + "id": 2661, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "586:6:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "572:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2660, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "572:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2666, + "initialValue": { + "arguments": [ + { + "id": 2664, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2652, + "src": "606:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "595:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 2662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "599:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "595:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "572:41:13" + }, + { + "assignments": [ + 2668 + ], + "declarations": [ + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "635:3:13", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "627:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2669, + "nodeType": "VariableDeclarationStatement", + "src": "627:11:13" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "708:67:13", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "726:35:13", + "value": { + "arguments": [ + { + "name": "buffer", + "nodeType": "YulIdentifier", + "src": "737:6:13" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "749:2:13", + "type": "", + "value": "32" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "753:6:13" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "745:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "745:15:13" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "733:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "733:28:13" + }, + "variableNames": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "726:3:13" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2661, + "isOffset": false, + "isSlot": false, + "src": "737:6:13", + "valueSize": 1 + }, + { + "declaration": 2652, + "isOffset": false, + "isSlot": false, + "src": "753:6:13", + "valueSize": 1 + }, + { + "declaration": 2668, + "isOffset": false, + "isSlot": false, + "src": "726:3:13", + "valueSize": 1 + } + ], + "id": 2670, + "nodeType": "InlineAssembly", + "src": "699:76:13" + }, + { + "body": { + "id": 2685, + "nodeType": "Block", + "src": "801:267:13", + "statements": [ + { + "expression": { + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "819:5:13", + "subExpression": { + "id": 2672, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "819:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2674, + "nodeType": "ExpressionStatement", + "src": "819:5:13" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "902:84:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "932:3:13" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "946:5:13" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "953:2:13", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nodeType": "YulIdentifier", + "src": "942:3:13" + }, + "nodeType": "YulFunctionCall", + "src": "942:14:13" + }, + { + "name": "_SYMBOLS", + "nodeType": "YulIdentifier", + "src": "958:8:13" + } + ], + "functionName": { + "name": "byte", + "nodeType": "YulIdentifier", + "src": "937:4:13" + }, + "nodeType": "YulFunctionCall", + "src": "937:30:13" + } + ], + "functionName": { + "name": "mstore8", + "nodeType": "YulIdentifier", + "src": "924:7:13" + }, + "nodeType": "YulFunctionCall", + "src": "924:44:13" + }, + "nodeType": "YulExpressionStatement", + "src": "924:44:13" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2640, + "isOffset": false, + "isSlot": false, + "src": "958:8:13", + "valueSize": 1 + }, + { + "declaration": 2668, + "isOffset": false, + "isSlot": false, + "src": "932:3:13", + "valueSize": 1 + }, + { + "declaration": 2646, + "isOffset": false, + "isSlot": false, + "src": "946:5:13", + "valueSize": 1 + } + ], + "id": 2675, + "nodeType": "InlineAssembly", + "src": "893:93:13" + }, + { + "expression": { + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2676, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "1003:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:2:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1003:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2679, + "nodeType": "ExpressionStatement", + "src": "1003:11:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2680, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "1036:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1036:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2684, + "nodeType": "IfStatement", + "src": "1032:21:13", + "trueBody": { + "id": 2683, + "nodeType": "Break", + "src": "1048:5:13" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 2686, + "nodeType": "WhileStatement", + "src": "788:280:13" + }, + { + "expression": { + "id": 2687, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2661, + "src": "1088:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2650, + "id": 2688, + "nodeType": "Return", + "src": "1081:13:13" + } + ] + } + ] + }, + "documentation": { + "id": 2644, + "nodeType": "StructuredDocumentation", + "src": "320:90:13", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 2691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "424:8:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2646, + "mutability": "mutable", + "name": "value", + "nameLocation": "441:5:13", + "nodeType": "VariableDeclaration", + "scope": 2691, + "src": "433:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "433:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "432:15:13" + }, + "returnParameters": { + "id": 2650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2649, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2691, + "src": "471:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "471:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "470:15:13" + }, + "scope": 2808, + "src": "415:696:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "1290:100:13", + "statements": [ + { + "id": 2709, + "nodeType": "UncheckedBlock", + "src": "1300:84:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2700, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2694, + "src": "1343:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2703, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2694, + "src": "1362:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2701, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3709, + "src": "1350:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3709_$", + "typeString": "type(library Math)" + } + }, + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1355:6:13", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 3669, + "src": "1350:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1350:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1371:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1350:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2699, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2711, + 2787, + 2807 + ], + "referencedDeclaration": 2787, + "src": "1331:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1331:42:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2698, + "id": 2708, + "nodeType": "Return", + "src": "1324:49:13" + } + ] + } + ] + }, + "documentation": { + "id": 2692, + "nodeType": "StructuredDocumentation", + "src": "1117:94:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 2711, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1225:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2694, + "mutability": "mutable", + "name": "value", + "nameLocation": "1245:5:13", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "1237:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1237:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1236:15:13" + }, + "returnParameters": { + "id": 2698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2697, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "1275:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1275:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1274:15:13" + }, + "scope": 2808, + "src": "1216:174:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "1603:347:13", + "statements": [ + { + "assignments": [ + 2722 + ], + "declarations": [ + { + "constant": false, + "id": 2722, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1626:6:13", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "1613:19:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2721, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1613:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1645:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2726, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2716, + "src": "1649:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1645:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1658:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1645:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1635:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2723, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1639:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1635:25:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1613:47:13" + }, + { + "expression": { + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2732, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1670:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2734, + "indexExpression": { + "hexValue": "30", + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1670:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1682:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "1670:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "1670:15:13" + }, + { + "expression": { + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2738, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1695:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2740, + "indexExpression": { + "hexValue": "31", + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1702:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1695:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 2741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1707:3:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "1695:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "1695:15:13" + }, + { + "body": { + "id": 2772, + "nodeType": "Block", + "src": "1765:83:13", + "statements": [ + { + "expression": { + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2758, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1779:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2760, + "indexExpression": { + "id": 2759, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1786:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1779:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2761, + "name": "_SYMBOLS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2640, + "src": "1791:8:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 2765, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2762, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1800:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1808:3:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "1800:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1791:21:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "1779:33:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2767, + "nodeType": "ExpressionStatement", + "src": "1779:33:13" + }, + { + "expression": { + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2768, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1836:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1826:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2771, + "nodeType": "ExpressionStatement", + "src": "1826:11:13" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2752, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1753:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1757:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1753:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2773, + "initializationExpression": { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "i", + "nameLocation": "1733:1:13", + "nodeType": "VariableDeclaration", + "scope": 2773, + "src": "1725:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1725:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2751, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1737:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2747, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2716, + "src": "1741:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1737:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1737:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1725:26:13" + }, + "loopExpression": { + "expression": { + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "1760:3:13", + "subExpression": { + "id": 2755, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "1762:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2757, + "nodeType": "ExpressionStatement", + "src": "1760:3:13" + }, + "nodeType": "ForStatement", + "src": "1720:128:13" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2714, + "src": "1865:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1874:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1865:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1877:34:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + }, + "value": "Strings: hex length insufficient" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "typeString": "literal_string \"Strings: hex length insufficient\"" + } + ], + "id": 2774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1857:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1857:55:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2780, + "nodeType": "ExpressionStatement", + "src": "1857:55:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2783, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "1936:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1929:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2781, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:13", + "typeDescriptions": {} + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1929:14:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2720, + "id": 2785, + "nodeType": "Return", + "src": "1922:21:13" + } + ] + }, + "documentation": { + "id": 2712, + "nodeType": "StructuredDocumentation", + "src": "1396:112:13", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 2787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1522:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2714, + "mutability": "mutable", + "name": "value", + "nameLocation": "1542:5:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1534:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1534:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2716, + "mutability": "mutable", + "name": "length", + "nameLocation": "1557:6:13", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1549:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1549:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1533:31:13" + }, + "returnParameters": { + "id": 2720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2719, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "1588:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2718, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1588:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1587:15:13" + }, + "scope": 2808, + "src": "1513:437:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2806, + "nodeType": "Block", + "src": "2175:76:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2800, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "2220:4:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2212:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2798, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2212:7:13", + "typeDescriptions": {} + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2212:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2204:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2204:7:13", + "typeDescriptions": {} + } + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2204:22:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2803, + "name": "_ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2643, + "src": "2228:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2795, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2711, + 2787, + 2807 + ], + "referencedDeclaration": 2787, + "src": "2192:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2192:52:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2794, + "id": 2805, + "nodeType": "Return", + "src": "2185:59:13" + } + ] + }, + "documentation": { + "id": 2788, + "nodeType": "StructuredDocumentation", + "src": "1956:141:13", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation." + }, + "id": 2807, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2111:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2790, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2131:4:13", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "2123:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:14:13" + }, + "returnParameters": { + "id": 2794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2793, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "2160:13:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2792, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2160:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2159:15:13" + }, + "scope": 2808, + "src": "2102:149:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2809, + "src": "188:2065:13", + "usedErrors": [] + } + ], + "src": "101:2153:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 2832 + ], + "IERC165": [ + 2844 + ] + }, + "id": 2833, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2810, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "99:23:14" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2811, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2833, + "sourceUnit": 2845, + "src": "124:23:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2813, + "name": "IERC165", + "nameLocations": [ + "754:7:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "754:7:14" + }, + "id": 2814, + "nodeType": "InheritanceSpecifier", + "src": "754:7:14" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2812, + "nodeType": "StructuredDocumentation", + "src": "149:576:14", + "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 ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." + }, + "fullyImplemented": true, + "id": 2832, + "linearizedBaseContracts": [ + 2832, + 2844 + ], + "name": "ERC165", + "nameLocation": "744:6:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 2843 + ], + "body": { + "id": 2830, + "nodeType": "Block", + "src": "920:64:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2823, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2817, + "src": "937:11:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2825, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "957:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2844_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2844_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2824, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "952:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "952:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2844", + "typeString": "type(contract IERC165)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "966:11:14", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "952:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "937:40:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2822, + "id": 2829, + "nodeType": "Return", + "src": "930:47:14" + } + ] + }, + "documentation": { + "id": 2815, + "nodeType": "StructuredDocumentation", + "src": "768:56:14", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 2831, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "838:17:14", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2819, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "896:8:14" + }, + "parameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2817, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "863:11:14", + "nodeType": "VariableDeclaration", + "scope": 2831, + "src": "856:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2816, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "856:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "855:20:14" + }, + "returnParameters": { + "id": 2822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2831, + "src": "914:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2820, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "914:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "913:6:14" + }, + "scope": 2832, + "src": "829:155:14", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 2833, + "src": "726:260:14", + "usedErrors": [] + } + ], + "src": "99:888:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ] + }, + "id": 2845, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2834, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "100:23:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2835, + "nodeType": "StructuredDocumentation", + "src": "125:279:15", + "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": 2844, + "linearizedBaseContracts": [ + 2844 + ], + "name": "IERC165", + "nameLocation": "415:7:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2836, + "nodeType": "StructuredDocumentation", + "src": "429:340:15", + "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": 2843, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "783:17:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2838, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "808:11:15", + "nodeType": "VariableDeclaration", + "scope": 2843, + "src": "801:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2837, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "801:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "800:20:15" + }, + "returnParameters": { + "id": 2842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2843, + "src": "844:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2840, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "844:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "843:6:15" + }, + "scope": 2844, + "src": "774:76:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2845, + "src": "405:447:15", + "usedErrors": [] + } + ], + "src": "100:753:15" + }, + "id": 15 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3709 + ] + }, + "id": 3710, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2846, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "103:23:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2847, + "nodeType": "StructuredDocumentation", + "src": "128:73:16", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3709, + "linearizedBaseContracts": [ + 3709 + ], + "name": "Math", + "nameLocation": "210:4:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Math.Rounding", + "id": 2851, + "members": [ + { + "id": 2848, + "name": "Down", + "nameLocation": "245:4:16", + "nodeType": "EnumValue", + "src": "245:4:16" + }, + { + "id": 2849, + "name": "Up", + "nameLocation": "287:2:16", + "nodeType": "EnumValue", + "src": "287:2:16" + }, + { + "id": 2850, + "name": "Zero", + "nameLocation": "318:4:16", + "nodeType": "EnumValue", + "src": "318:4:16" + } + ], + "name": "Rounding", + "nameLocation": "226:8:16", + "nodeType": "EnumDefinition", + "src": "221:122:16" + }, + { + "body": { + "id": 2868, + "nodeType": "Block", + "src": "480:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2861, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "497:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2862, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "501:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "497:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2865, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "509:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "497:13:16", + "trueExpression": { + "id": 2864, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "505:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2860, + "id": 2867, + "nodeType": "Return", + "src": "490:20:16" + } + ] + }, + "documentation": { + "id": 2852, + "nodeType": "StructuredDocumentation", + "src": "349:59:16", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2869, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "422:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "a", + "nameLocation": "434:1:16", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "426:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "b", + "nameLocation": "445:1:16", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "437:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "425:22:16" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2869, + "src": "471:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "471:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "470:9:16" + }, + "scope": 3709, + "src": "413:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2886, + "nodeType": "Block", + "src": "655:37:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2879, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2872, + "src": "672:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2880, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "676:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "672:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2883, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "672:13:16", + "trueExpression": { + "id": 2882, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2872, + "src": "680:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2878, + "id": 2885, + "nodeType": "Return", + "src": "665:20:16" + } + ] + }, + "documentation": { + "id": 2870, + "nodeType": "StructuredDocumentation", + "src": "523:60:16", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2887, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "597:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2872, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:16", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "601:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:16", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "612:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:16" + }, + "returnParameters": { + "id": 2878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2877, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "646:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "646:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:9:16" + }, + "scope": 3709, + "src": "588:104:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2909, + "nodeType": "Block", + "src": "876:82:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2897, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "931:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2898, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2892, + "src": "935:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "931:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2900, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "930:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2901, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "941:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2902, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2892, + "src": "945:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "941:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2904, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "940:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "950:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "940:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "930:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2896, + "id": 2908, + "nodeType": "Return", + "src": "923:28:16" + } + ] + }, + "documentation": { + "id": 2888, + "nodeType": "StructuredDocumentation", + "src": "698:102:16", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2910, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "814:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2890, + "mutability": "mutable", + "name": "a", + "nameLocation": "830:1:16", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "822:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "822:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2892, + "mutability": "mutable", + "name": "b", + "nameLocation": "841:1:16", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "833:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "833:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "821:22:16" + }, + "returnParameters": { + "id": 2896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2910, + "src": "867:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "867:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "866:9:16" + }, + "scope": 3709, + "src": "805:153:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2934, + "nodeType": "Block", + "src": "1228:123:16", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2913, + "src": "1316:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1321:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1316:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2913, + "src": "1330:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1334:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1330:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2927, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1329:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2928, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1339:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1329:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1343:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1329:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1316:28:16", + "trueExpression": { + "hexValue": "30", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1325:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2919, + "id": 2933, + "nodeType": "Return", + "src": "1309:35:16" + } + ] + }, + "documentation": { + "id": 2911, + "nodeType": "StructuredDocumentation", + "src": "964:188:16", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down." + }, + "id": 2935, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "1166:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2913, + "mutability": "mutable", + "name": "a", + "nameLocation": "1182:1:16", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1174:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1174:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2915, + "mutability": "mutable", + "name": "b", + "nameLocation": "1193:1:16", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1185:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1185:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1173:22:16" + }, + "returnParameters": { + "id": 2919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2918, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2935, + "src": "1219:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1219:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1218:9:16" + }, + "scope": 3709, + "src": "1157:194:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3056, + "nodeType": "Block", + "src": "1795:3797:16", + "statements": [ + { + "id": 3055, + "nodeType": "UncheckedBlock", + "src": "1805:3781:16", + "statements": [ + { + "assignments": [ + 2948 + ], + "declarations": [ + { + "constant": false, + "id": 2948, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "2134:5:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2126:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2126:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2949, + "nodeType": "VariableDeclarationStatement", + "src": "2126:13:16" + }, + { + "assignments": [ + 2951 + ], + "declarations": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "2206:5:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2198:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2198:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2952, + "nodeType": "VariableDeclarationStatement", + "src": "2198:13:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "2278:157:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2296:30:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2313:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2316:1:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2323:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2319:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2319:6:16" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "2306:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2306:20:16" + }, + "variables": [ + { + "name": "mm", + "nodeType": "YulTypedName", + "src": "2300:2:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2343:18:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2356:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2359:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2352:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2352:9:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2343:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2378:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2395:2:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2399:5:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2391:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2391:14:16" + }, + { + "arguments": [ + { + "name": "mm", + "nodeType": "YulIdentifier", + "src": "2410:2:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "2414:5:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2407:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:13:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2387:34:16" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "2378:5:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2343:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2399:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "2414:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "2378:5:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "2313:1:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "2356:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "2316:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "2359:1:16", + "valueSize": 1 + } + ], + "id": 2953, + "nodeType": "InlineAssembly", + "src": "2269:166:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2954, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2516:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2525:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2516:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2962, + "nodeType": "IfStatement", + "src": "2512:75:16", + "trueBody": { + "id": 2961, + "nodeType": "Block", + "src": "2528:59:16", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2957, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "2553:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2958, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "2561:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2553:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2946, + "id": 2960, + "nodeType": "Return", + "src": "2546:26:16" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2964, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "2697:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2965, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2711:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2697:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2963, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2689:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2689:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2968, + "nodeType": "ExpressionStatement", + "src": "2689:28:16" + }, + { + "assignments": [ + 2970 + ], + "declarations": [ + { + "constant": false, + "id": 2970, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "2981:9:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2973:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2973:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2971, + "nodeType": "VariableDeclarationStatement", + "src": "2973:17:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3013:291:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3082:38:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3102:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3105:1:16" + }, + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3108:11:16" + } + ], + "functionName": { + "name": "mulmod", + "nodeType": "YulIdentifier", + "src": "3095:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3095:25:16" + }, + "variableNames": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3082:9:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3202:41:16", + "value": { + "arguments": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3215:5:16" + }, + { + "arguments": [ + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3225:9:16" + }, + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3236:5:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3222:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3222:20:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3211:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3211:32:16" + }, + "variableNames": [ + { + "name": "prod1", + "nodeType": "YulIdentifier", + "src": "3202:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3260:30:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3273:5:16" + }, + { + "name": "remainder", + "nodeType": "YulIdentifier", + "src": "3280:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3269:21:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3260:5:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3108:11:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3236:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3260:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3273:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "3202:5:16", + "valueSize": 1 + }, + { + "declaration": 2951, + "isOffset": false, + "isSlot": false, + "src": "3215:5:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3082:9:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3225:9:16", + "valueSize": 1 + }, + { + "declaration": 2970, + "isOffset": false, + "isSlot": false, + "src": "3280:9:16", + "valueSize": 1 + }, + { + "declaration": 2938, + "isOffset": false, + "isSlot": false, + "src": "3102:1:16", + "valueSize": 1 + }, + { + "declaration": 2940, + "isOffset": false, + "isSlot": false, + "src": "3105:1:16", + "valueSize": 1 + } + ], + "id": 2972, + "nodeType": "InlineAssembly", + "src": "3004:300:16" + }, + { + "assignments": [ + 2974 + ], + "declarations": [ + { + "constant": false, + "id": 2974, + "mutability": "mutable", + "name": "twos", + "nameLocation": "3619:4:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "3611:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3611:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2982, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2975, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3626:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "~", + "prefix": true, + "src": "3641:12:16", + "subExpression": { + "id": 2976, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3642:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3641:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3640:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3626:32:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3611:47:16" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "3681:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3746:37:16", + "value": { + "arguments": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3765:11:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3778:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3761:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3761:22:16" + }, + "variableNames": [ + { + "name": "denominator", + "nodeType": "YulIdentifier", + "src": "3746:11:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3850:25:16", + "value": { + "arguments": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3863:5:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3870:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3859:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3859:16:16" + }, + "variableNames": [ + { + "name": "prod0", + "nodeType": "YulIdentifier", + "src": "3850:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3990:39:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4010:1:16", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4013:4:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4006:12:16" + }, + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "4020:4:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4002:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4002:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4027:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3998:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3998:31:16" + }, + "variableNames": [ + { + "name": "twos", + "nodeType": "YulIdentifier", + "src": "3990:4:16" + } + ] + } + ] + }, + "evmVersion": "london", + "externalReferences": [ + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3746:11:16", + "valueSize": 1 + }, + { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "3765:11:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3850:5:16", + "valueSize": 1 + }, + { + "declaration": 2948, + "isOffset": false, + "isSlot": false, + "src": "3863:5:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3778:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3870:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "3990:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "4013:4:16", + "valueSize": 1 + }, + { + "declaration": 2974, + "isOffset": false, + "isSlot": false, + "src": "4020:4:16", + "valueSize": 1 + } + ], + "id": 2983, + "nodeType": "InlineAssembly", + "src": "3672:371:16" + }, + { + "expression": { + "id": 2988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2984, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "4109:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2985, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "4118:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2986, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2974, + "src": "4126:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4118:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4109:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2989, + "nodeType": "ExpressionStatement", + "src": "4109:21:16" + }, + { + "assignments": [ + 2991 + ], + "declarations": [ + { + "constant": false, + "id": 2991, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "4456:7:16", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "4448:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4448:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2998, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4467:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2993, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4471:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4467:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2995, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4466:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4486:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "4466:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:39:16" + }, + { + "expression": { + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2999, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4704:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4715:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3001, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4719:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3002, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4733:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4715:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4704:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3006, + "nodeType": "ExpressionStatement", + "src": "4704:36:16" + }, + { + "expression": { + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3007, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4773:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4784:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3009, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4788:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3010, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4802:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4788:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4784:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4773:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3014, + "nodeType": "ExpressionStatement", + "src": "4773:36:16" + }, + { + "expression": { + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3015, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4843:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4854:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3017, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4858:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3018, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4872:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4858:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4854:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4843:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3022, + "nodeType": "ExpressionStatement", + "src": "4843:36:16" + }, + { + "expression": { + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3023, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4913:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4924:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3025, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4928:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3026, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4942:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4928:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4924:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4913:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3030, + "nodeType": "ExpressionStatement", + "src": "4913:36:16" + }, + { + "expression": { + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3031, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "4983:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4994:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3033, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "4998:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3034, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5012:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4998:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4994:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4983:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3038, + "nodeType": "ExpressionStatement", + "src": "4983:36:16" + }, + { + "expression": { + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3039, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5054:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5065:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3041, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "5069:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3042, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5083:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5069:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3046, + "nodeType": "ExpressionStatement", + "src": "5054:36:16" + }, + { + "expression": { + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3047, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "5524:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3048, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "5533:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3049, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "5541:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5533:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5524:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3052, + "nodeType": "ExpressionStatement", + "src": "5524:24:16" + }, + { + "expression": { + "id": 3053, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "5569:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2946, + "id": 3054, + "nodeType": "Return", + "src": "5562:13:16" + } + ] + } + ] + }, + "documentation": { + "id": 2936, + "nodeType": "StructuredDocumentation", + "src": "1357:305:16", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license." + }, + "id": 3057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "1676:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "x", + "nameLocation": "1700:1:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1692:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1692:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2940, + "mutability": "mutable", + "name": "y", + "nameLocation": "1719:1:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1711:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1711:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1738:11:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1730:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1682:73:16" + }, + "returnParameters": { + "id": 2946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2945, + "mutability": "mutable", + "name": "result", + "nameLocation": "1787:6:16", + "nodeType": "VariableDeclaration", + "scope": 3057, + "src": "1779:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1779:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1778:16:16" + }, + "scope": 3709, + "src": "1667:3925:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3100, + "nodeType": "Block", + "src": "5872:189:16", + "statements": [ + { + "assignments": [ + 3073 + ], + "declarations": [ + { + "constant": false, + "id": 3073, + "mutability": "mutable", + "name": "result", + "nameLocation": "5890:6:16", + "nodeType": "VariableDeclaration", + "scope": 3100, + "src": "5882:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5882:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3079, + "initialValue": { + "arguments": [ + { + "id": 3075, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3060, + "src": "5906:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3076, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3062, + "src": "5909:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3077, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "5912:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3074, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3057, + 3101 + ], + "referencedDeclaration": 3057, + "src": "5899:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5899:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5882:42:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3080, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3067, + "src": "5938:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3081, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "5950:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5959:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "5950:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "5938:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3085, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3060, + "src": "5972:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3086, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3062, + "src": "5975:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3087, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "5978:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3084, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "5965:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5965:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5993:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5965:29:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5938:56:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3097, + "nodeType": "IfStatement", + "src": "5934:98:16", + "trueBody": { + "id": 3096, + "nodeType": "Block", + "src": "5996:36:16", + "statements": [ + { + "expression": { + "id": 3094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3092, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "6010:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6020:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6010:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3095, + "nodeType": "ExpressionStatement", + "src": "6010:11:16" + } + ] + } + }, + { + "expression": { + "id": 3098, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "6048:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3071, + "id": 3099, + "nodeType": "Return", + "src": "6041:13:16" + } + ] + }, + "documentation": { + "id": 3058, + "nodeType": "StructuredDocumentation", + "src": "5598:121:16", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 3101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "5733:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3060, + "mutability": "mutable", + "name": "x", + "nameLocation": "5757:1:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5749:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5749:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3062, + "mutability": "mutable", + "name": "y", + "nameLocation": "5776:1:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5768:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5768:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3064, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "5795:11:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5787:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5787:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3067, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "5825:8:16", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5816:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3066, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3065, + "name": "Rounding", + "nameLocations": [ + "5816:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "5816:8:16" + }, + "referencedDeclaration": 2851, + "src": "5816:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "5739:100:16" + }, + "returnParameters": { + "id": 3071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3101, + "src": "5863:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5863:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5862:9:16" + }, + "scope": 3709, + "src": "5724:337:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3212, + "nodeType": "Block", + "src": "6337:1585:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "6351:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6356:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6351:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3115, + "nodeType": "IfStatement", + "src": "6347:45:16", + "trueBody": { + "id": 3114, + "nodeType": "Block", + "src": "6359:33:16", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6380:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3108, + "id": 3113, + "nodeType": "Return", + "src": "6373:8:16" + } + ] + } + }, + { + "assignments": [ + 3117 + ], + "declarations": [ + { + "constant": false, + "id": 3117, + "mutability": "mutable", + "name": "result", + "nameLocation": "7079:6:16", + "nodeType": "VariableDeclaration", + "scope": 3212, + "src": "7071:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7071:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3126, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7088:1:16", + "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": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3120, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7099:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3119, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3381, + 3417 + ], + "referencedDeclaration": 3381, + "src": "7094:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7094:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7105:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7094:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7093:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7088:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7071:36:16" + }, + { + "id": 3211, + "nodeType": "UncheckedBlock", + "src": "7508:408:16", + "statements": [ + { + "expression": { + "id": 3136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3127, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7532:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3128, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7542:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7551:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3130, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7555:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7551:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7542:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3133, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7541:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7566:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7541:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7532:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3137, + "nodeType": "ExpressionStatement", + "src": "7532:35:16" + }, + { + "expression": { + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3138, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7581:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3139, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7591:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3140, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7600:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3141, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7604:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7600:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7591:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3144, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7590:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7615:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7590:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7581:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3148, + "nodeType": "ExpressionStatement", + "src": "7581:35:16" + }, + { + "expression": { + "id": 3158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3149, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7630:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3150, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7640:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3151, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7649:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3152, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7653:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7649:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7640:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3155, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7639:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7664:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7639:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7630:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3159, + "nodeType": "ExpressionStatement", + "src": "7630:35:16" + }, + { + "expression": { + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3160, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7679:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3161, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7689:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3162, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7698:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3163, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7702:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7698:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7689:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3166, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7688:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7713:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7688:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7679:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3170, + "nodeType": "ExpressionStatement", + "src": "7679:35:16" + }, + { + "expression": { + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3171, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7728:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3172, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7738:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3173, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7747:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3174, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7751:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7747:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7738:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7737:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7762:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7737:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7728:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3181, + "nodeType": "ExpressionStatement", + "src": "7728:35:16" + }, + { + "expression": { + "id": 3191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3182, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7777:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3183, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7787:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3184, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7796:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7800:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7796:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7787:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3188, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7786:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7811:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7786:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7777:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3192, + "nodeType": "ExpressionStatement", + "src": "7777:35:16" + }, + { + "expression": { + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3193, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7826:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3194, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7836:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3195, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7845:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3196, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7849:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7845:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7836:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3199, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7835:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7860:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7835:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7826:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3203, + "nodeType": "ExpressionStatement", + "src": "7826:35:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3205, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7886:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3206, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "7894:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3207, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3117, + "src": "7898:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7894:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3204, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2887, + "src": "7882:3:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7882:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3108, + "id": 3210, + "nodeType": "Return", + "src": "7875:30:16" + } + ] + } + ] + }, + "documentation": { + "id": 3102, + "nodeType": "StructuredDocumentation", + "src": "6067:208:16", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 3213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "6289:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3104, + "mutability": "mutable", + "name": "a", + "nameLocation": "6302:1:16", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6294:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6294:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6293:11:16" + }, + "returnParameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6328:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6328:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6327:9:16" + }, + "scope": 3709, + "src": "6280:1642:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3248, + "nodeType": "Block", + "src": "8098:161:16", + "statements": [ + { + "id": 3247, + "nodeType": "UncheckedBlock", + "src": "8108:145:16", + "statements": [ + { + "assignments": [ + 3225 + ], + "declarations": [ + { + "constant": false, + "id": 3225, + "mutability": "mutable", + "name": "result", + "nameLocation": "8140:6:16", + "nodeType": "VariableDeclaration", + "scope": 3247, + "src": "8132:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8132:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3229, + "initialValue": { + "arguments": [ + { + "id": 3227, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "8154:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3226, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3213, + 3249 + ], + "referencedDeclaration": 3213, + "src": "8149:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8149:7:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8132:24:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8177:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3231, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "8187:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3232, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "8199:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8208:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "8199:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "8187:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3235, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8214:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3236, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3225, + "src": "8223:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8214:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3238, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "8232:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8214:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8187:46:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8240:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8187:54:16", + "trueExpression": { + "hexValue": "31", + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8236:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3244, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8186:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "8177:65:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3223, + "id": 3246, + "nodeType": "Return", + "src": "8170:72:16" + } + ] + } + ] + }, + "documentation": { + "id": 3214, + "nodeType": "StructuredDocumentation", + "src": "7928:89:16", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 3249, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8031:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3216, + "mutability": "mutable", + "name": "a", + "nameLocation": "8044:1:16", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8036:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8056:8:16", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8047:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3218, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3217, + "name": "Rounding", + "nameLocations": [ + "8047:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "8047:8:16" + }, + "referencedDeclaration": 2851, + "src": "8047:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8035:30:16" + }, + "returnParameters": { + "id": 3223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3222, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3249, + "src": "8089:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8088:9:16" + }, + "scope": 3709, + "src": "8022:237:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3380, + "nodeType": "Block", + "src": "8444:922:16", + "statements": [ + { + "assignments": [ + 3258 + ], + "declarations": [ + { + "constant": false, + "id": 3258, + "mutability": "mutable", + "name": "result", + "nameLocation": "8462:6:16", + "nodeType": "VariableDeclaration", + "scope": 3380, + "src": "8454:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8454:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3260, + "initialValue": { + "hexValue": "30", + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8471:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8454:18:16" + }, + { + "id": 3377, + "nodeType": "UncheckedBlock", + "src": "8482:855:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3261, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8510:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8519:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8510:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8525:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8510:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "8506:99:16", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "8528:77:16", + "statements": [ + { + "expression": { + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3266, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8546:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8556:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8546:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3269, + "nodeType": "ExpressionStatement", + "src": "8546:13:16" + }, + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3270, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8577:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8587:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "8577:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "8577:13:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3276, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8622:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8631:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8622:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8636:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3290, + "nodeType": "IfStatement", + "src": "8618:96:16", + "trueBody": { + "id": 3289, + "nodeType": "Block", + "src": "8639:75:16", + "statements": [ + { + "expression": { + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3281, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8657:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8667:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8657:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3284, + "nodeType": "ExpressionStatement", + "src": "8657:12:16" + }, + { + "expression": { + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3285, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8687:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8697:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "8687:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "8687:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3291, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8731:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8740:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8731:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8731:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3305, + "nodeType": "IfStatement", + "src": "8727:96:16", + "trueBody": { + "id": 3304, + "nodeType": "Block", + "src": "8748:75:16", + "statements": [ + { + "expression": { + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8766:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8776:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8766:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "8766:12:16" + }, + { + "expression": { + "id": 3302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3300, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8796:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8806:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "8796:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3303, + "nodeType": "ExpressionStatement", + "src": "8796:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3306, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8840:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8849:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8840:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8854:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8840:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3320, + "nodeType": "IfStatement", + "src": "8836:96:16", + "trueBody": { + "id": 3319, + "nodeType": "Block", + "src": "8857:75:16", + "statements": [ + { + "expression": { + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3311, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8875:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8885:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8875:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3314, + "nodeType": "ExpressionStatement", + "src": "8875:12:16" + }, + { + "expression": { + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3315, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "8905:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8915:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "8905:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "8905:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3321, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8949:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8958:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8949:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8962:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8949:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3335, + "nodeType": "IfStatement", + "src": "8945:93:16", + "trueBody": { + "id": 3334, + "nodeType": "Block", + "src": "8965:73:16", + "statements": [ + { + "expression": { + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3326, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "8983:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8993:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "8983:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3329, + "nodeType": "ExpressionStatement", + "src": "8983:11:16" + }, + { + "expression": { + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3330, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9012:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9022:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "9012:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "9012:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3336, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9055:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9064:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9055:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9068:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9055:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3350, + "nodeType": "IfStatement", + "src": "9051:93:16", + "trueBody": { + "id": 3349, + "nodeType": "Block", + "src": "9071:73:16", + "statements": [ + { + "expression": { + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3341, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9089:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9099:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9089:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3344, + "nodeType": "ExpressionStatement", + "src": "9089:11:16" + }, + { + "expression": { + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3345, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9118:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9128:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9118:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3348, + "nodeType": "ExpressionStatement", + "src": "9118:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3351, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9161:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9170:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9161:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9174:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9161:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3365, + "nodeType": "IfStatement", + "src": "9157:93:16", + "trueBody": { + "id": 3364, + "nodeType": "Block", + "src": "9177:73:16", + "statements": [ + { + "expression": { + "id": 3358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3356, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9195:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 3357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9205:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9195:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3359, + "nodeType": "ExpressionStatement", + "src": "9195:11:16" + }, + { + "expression": { + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3360, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9224:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9234:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9224:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "9224:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3366, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3252, + "src": "9267:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9276:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9267:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9280:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9267:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3376, + "nodeType": "IfStatement", + "src": "9263:64:16", + "trueBody": { + "id": 3375, + "nodeType": "Block", + "src": "9283:44:16", + "statements": [ + { + "expression": { + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3371, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9301:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9311:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9301:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3374, + "nodeType": "ExpressionStatement", + "src": "9301:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3378, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3258, + "src": "9353:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3256, + "id": 3379, + "nodeType": "Return", + "src": "9346:13:16" + } + ] + }, + "documentation": { + "id": 3250, + "nodeType": "StructuredDocumentation", + "src": "8265:113:16", + "text": " @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 3381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "8392:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3252, + "mutability": "mutable", + "name": "value", + "nameLocation": "8405:5:16", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "8397:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8397:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8396:15:16" + }, + "returnParameters": { + "id": 3256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3255, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "8435:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8435:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8434:9:16" + }, + "scope": 3709, + "src": "8383:983:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3416, + "nodeType": "Block", + "src": "9599:165:16", + "statements": [ + { + "id": 3415, + "nodeType": "UncheckedBlock", + "src": "9609:149:16", + "statements": [ + { + "assignments": [ + 3393 + ], + "declarations": [ + { + "constant": false, + "id": 3393, + "mutability": "mutable", + "name": "result", + "nameLocation": "9641:6:16", + "nodeType": "VariableDeclaration", + "scope": 3415, + "src": "9633:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3392, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9633:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3397, + "initialValue": { + "arguments": [ + { + "id": 3395, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "9655:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3394, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3381, + 3417 + ], + "referencedDeclaration": 3381, + "src": "9650:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9650:11:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9633:28:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3398, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "9682:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3399, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3387, + "src": "9692:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3400, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "9704:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9713:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "9704:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "9692:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9719:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 3404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "9724:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9719:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3406, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "9733:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9719:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9692:46:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9692:54:16", + "trueExpression": { + "hexValue": "31", + "id": 3409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9741:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3412, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9691:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "9682:65:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3391, + "id": 3414, + "nodeType": "Return", + "src": "9675:72:16" + } + ] + } + ] + }, + "documentation": { + "id": 3382, + "nodeType": "StructuredDocumentation", + "src": "9372:142:16", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "9528:4:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3384, + "mutability": "mutable", + "name": "value", + "nameLocation": "9541:5:16", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9533:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9533:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3387, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "9557:8:16", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9548:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3386, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3385, + "name": "Rounding", + "nameLocations": [ + "9548:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "9548:8:16" + }, + "referencedDeclaration": 2851, + "src": "9548:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "9532:34:16" + }, + "returnParameters": { + "id": 3391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3417, + "src": "9590:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9590:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9589:9:16" + }, + "scope": 3709, + "src": "9519:245:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3545, + "nodeType": "Block", + "src": "9951:828:16", + "statements": [ + { + "assignments": [ + 3426 + ], + "declarations": [ + { + "constant": false, + "id": 3426, + "mutability": "mutable", + "name": "result", + "nameLocation": "9969:6:16", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "9961:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9961:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3428, + "initialValue": { + "hexValue": "30", + "id": 3427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9978:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9961:18:16" + }, + { + "id": 3542, + "nodeType": "UncheckedBlock", + "src": "9989:761:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3429, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10017:5:16", + "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": 3432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10026:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10030:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10026:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10017:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3445, + "nodeType": "IfStatement", + "src": "10013:99:16", + "trueBody": { + "id": 3444, + "nodeType": "Block", + "src": "10034:78:16", + "statements": [ + { + "expression": { + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3434, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10052:5:16", + "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": 3437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10061:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10065:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10061:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "10052:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3439, + "nodeType": "ExpressionStatement", + "src": "10052:15:16" + }, + { + "expression": { + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3440, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10085:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10095:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10085:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3443, + "nodeType": "ExpressionStatement", + "src": "10085:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3446, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10129:5:16", + "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": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10138:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10142:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10138:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10129:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3462, + "nodeType": "IfStatement", + "src": "10125:99:16", + "trueBody": { + "id": 3461, + "nodeType": "Block", + "src": "10146:78:16", + "statements": [ + { + "expression": { + "id": 3455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10164:5:16", + "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": 3454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10173:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10177:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10173:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "10164:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3456, + "nodeType": "ExpressionStatement", + "src": "10164:15:16" + }, + { + "expression": { + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3457, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10197:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10207:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "10197:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3460, + "nodeType": "ExpressionStatement", + "src": "10197:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3463, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10241:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10250:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10254:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10250:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10241:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3479, + "nodeType": "IfStatement", + "src": "10237:99:16", + "trueBody": { + "id": 3478, + "nodeType": "Block", + "src": "10258:78:16", + "statements": [ + { + "expression": { + "id": 3472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3468, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10276:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10285:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10289:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10285:6:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "10276:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3473, + "nodeType": "ExpressionStatement", + "src": "10276:15:16" + }, + { + "expression": { + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3474, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10309:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10319:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "10309:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "10309:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3480, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10353:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10362:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10366:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10362:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10353:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3496, + "nodeType": "IfStatement", + "src": "10349:96:16", + "trueBody": { + "id": 3495, + "nodeType": "Block", + "src": "10369:76:16", + "statements": [ + { + "expression": { + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3485, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10387:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10396:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10400:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10396:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "10387:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3490, + "nodeType": "ExpressionStatement", + "src": "10387:14:16" + }, + { + "expression": { + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3491, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10419:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10429:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "10419:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3494, + "nodeType": "ExpressionStatement", + "src": "10419:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3497, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10462:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10471:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10475:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10471:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10462:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3513, + "nodeType": "IfStatement", + "src": "10458:96:16", + "trueBody": { + "id": 3512, + "nodeType": "Block", + "src": "10478:76:16", + "statements": [ + { + "expression": { + "id": 3506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3502, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10496:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10505:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10509:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10505:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "10496:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3507, + "nodeType": "ExpressionStatement", + "src": "10496:14:16" + }, + { + "expression": { + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3508, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10528:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10538:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "10528:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3511, + "nodeType": "ExpressionStatement", + "src": "10528:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10571:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10580:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10584:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10580:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10571:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3530, + "nodeType": "IfStatement", + "src": "10567:96:16", + "trueBody": { + "id": 3529, + "nodeType": "Block", + "src": "10587:76:16", + "statements": [ + { + "expression": { + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3519, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10605:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10614:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10618:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10614:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "10605:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3524, + "nodeType": "ExpressionStatement", + "src": "10605:14:16" + }, + { + "expression": { + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3525, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10637:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10647:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10637:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3528, + "nodeType": "ExpressionStatement", + "src": "10637:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3531, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "10680:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 3534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10689:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 3533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10693:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10689:5:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "10680:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3541, + "nodeType": "IfStatement", + "src": "10676:64:16", + "trueBody": { + "id": 3540, + "nodeType": "Block", + "src": "10696:44:16", + "statements": [ + { + "expression": { + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3536, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10714:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10724:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10714:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3539, + "nodeType": "ExpressionStatement", + "src": "10714:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3543, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "10766:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3424, + "id": 3544, + "nodeType": "Return", + "src": "10759:13:16" + } + ] + }, + "documentation": { + "id": 3418, + "nodeType": "StructuredDocumentation", + "src": "9770:114:16", + "text": " @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0." + }, + "id": 3546, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "9898:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3420, + "mutability": "mutable", + "name": "value", + "nameLocation": "9912:5:16", + "nodeType": "VariableDeclaration", + "scope": 3546, + "src": "9904:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3419, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9904:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9903:15:16" + }, + "returnParameters": { + "id": 3424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3423, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3546, + "src": "9942:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9942:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9941:9:16" + }, + "scope": 3709, + "src": "9889:890:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3581, + "nodeType": "Block", + "src": "11014:165:16", + "statements": [ + { + "id": 3580, + "nodeType": "UncheckedBlock", + "src": "11024:149:16", + "statements": [ + { + "assignments": [ + 3558 + ], + "declarations": [ + { + "constant": false, + "id": 3558, + "mutability": "mutable", + "name": "result", + "nameLocation": "11056:6:16", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "11048:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11048:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3562, + "initialValue": { + "arguments": [ + { + "id": 3560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "11071:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3559, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3546, + 3582 + ], + "referencedDeclaration": 3546, + "src": "11065:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11065:12:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11048:29:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3563, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "11098:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3564, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3552, + "src": "11108:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3565, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "11120:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11129:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "11120:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "11108:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11135:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 3569, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "11139:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11135:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "11148:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11135:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11108:45:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11160:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11108:53:16", + "trueExpression": { + "hexValue": "31", + "id": 3574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11156:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3577, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11107:55:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11098:64:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3556, + "id": 3579, + "nodeType": "Return", + "src": "11091:71:16" + } + ] + } + ] + }, + "documentation": { + "id": 3547, + "nodeType": "StructuredDocumentation", + "src": "10785:143:16", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3582, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "10942:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "value", + "nameLocation": "10956:5:16", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "10948:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10948:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3552, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10972:8:16", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "10963:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3551, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3550, + "name": "Rounding", + "nameLocations": [ + "10963:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "10963:8:16" + }, + "referencedDeclaration": 2851, + "src": "10963:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10947:34:16" + }, + "returnParameters": { + "id": 3556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3582, + "src": "11005:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11005:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11004:9:16" + }, + "scope": 3709, + "src": "10933:246:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "11493:600:16", + "statements": [ + { + "assignments": [ + 3591 + ], + "declarations": [ + { + "constant": false, + "id": 3591, + "mutability": "mutable", + "name": "result", + "nameLocation": "11511:6:16", + "nodeType": "VariableDeclaration", + "scope": 3668, + "src": "11503:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11503:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3593, + "initialValue": { + "hexValue": "30", + "id": 3592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11520:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11503:18:16" + }, + { + "id": 3665, + "nodeType": "UncheckedBlock", + "src": "11531:533:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3594, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11559:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11568:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11559:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11574:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11559:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3608, + "nodeType": "IfStatement", + "src": "11555:98:16", + "trueBody": { + "id": 3607, + "nodeType": "Block", + "src": "11577:76:16", + "statements": [ + { + "expression": { + "id": 3601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3599, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11595:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11605:3:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "11595:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "nodeType": "ExpressionStatement", + "src": "11595:13:16" + }, + { + "expression": { + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3603, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11626:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11636:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11626:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3606, + "nodeType": "ExpressionStatement", + "src": "11626:12:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3609, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11670:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11679:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11670:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11670:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3623, + "nodeType": "IfStatement", + "src": "11666:95:16", + "trueBody": { + "id": 3622, + "nodeType": "Block", + "src": "11687:74:16", + "statements": [ + { + "expression": { + "id": 3616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3614, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11705:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11715:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11705:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3617, + "nodeType": "ExpressionStatement", + "src": "11705:12:16" + }, + { + "expression": { + "id": 3620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3618, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11735:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11745:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11735:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3621, + "nodeType": "ExpressionStatement", + "src": "11735:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3624, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11778:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11787:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11778:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11792:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11778:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3638, + "nodeType": "IfStatement", + "src": "11774:95:16", + "trueBody": { + "id": 3637, + "nodeType": "Block", + "src": "11795:74:16", + "statements": [ + { + "expression": { + "id": 3631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3629, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11813:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11823:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11813:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3632, + "nodeType": "ExpressionStatement", + "src": "11813:12:16" + }, + { + "expression": { + "id": 3635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3633, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11843:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11853:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11843:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3636, + "nodeType": "ExpressionStatement", + "src": "11843:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3639, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11886:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11895:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11886:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11900:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11886:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3653, + "nodeType": "IfStatement", + "src": "11882:95:16", + "trueBody": { + "id": 3652, + "nodeType": "Block", + "src": "11903:74:16", + "statements": [ + { + "expression": { + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3644, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11921:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11931:2:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11921:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "nodeType": "ExpressionStatement", + "src": "11921:12:16" + }, + { + "expression": { + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3648, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11951:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11961:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11951:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "11951:11:16" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3654, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3585, + "src": "11994:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12003:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11994:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12007:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11994:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3664, + "nodeType": "IfStatement", + "src": "11990:64:16", + "trueBody": { + "id": 3663, + "nodeType": "Block", + "src": "12010:44:16", + "statements": [ + { + "expression": { + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3659, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "12028:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12028:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "12028:11:16" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3666, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "12080:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3589, + "id": 3667, + "nodeType": "Return", + "src": "12073:13:16" + } + ] + }, + "documentation": { + "id": 3583, + "nodeType": "StructuredDocumentation", + "src": "11185:240:16", + "text": " @dev Return the log in base 256, rounded down, of a positive value.\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": 3669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "11439:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3585, + "mutability": "mutable", + "name": "value", + "nameLocation": "11454:5:16", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "11446:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11446:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11445:15:16" + }, + "returnParameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "11484:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11484:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11483:9:16" + }, + "scope": 3709, + "src": "11430:663:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3707, + "nodeType": "Block", + "src": "12329:173:16", + "statements": [ + { + "id": 3706, + "nodeType": "UncheckedBlock", + "src": "12339:157:16", + "statements": [ + { + "assignments": [ + 3681 + ], + "declarations": [ + { + "constant": false, + "id": 3681, + "mutability": "mutable", + "name": "result", + "nameLocation": "12371:6:16", + "nodeType": "VariableDeclaration", + "scope": 3706, + "src": "12363:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12363:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3685, + "initialValue": { + "arguments": [ + { + "id": 3683, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3672, + "src": "12387:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3682, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3669, + 3708 + ], + "referencedDeclaration": 3669, + "src": "12380:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12380:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12363:30:16" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3686, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "12414:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3687, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "12424:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3688, + "name": "Rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "12436:8:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Rounding_$2851_$", + "typeString": "type(enum Math.Rounding)" + } + }, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12445:2:16", + "memberName": "Up", + "nodeType": "MemberAccess", + "referencedDeclaration": 2849, + "src": "12436:11:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "src": "12424:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12451:1:16", + "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": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3692, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "12457:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "38", + "id": 3693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12457:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3695, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12456:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3672, + "src": "12471:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12424:52:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12483:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12424:60:16", + "trueExpression": { + "hexValue": "31", + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12479:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3703, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12423:62:16", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12414:71:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3705, + "nodeType": "Return", + "src": "12407:78:16" + } + ] + } + ] + }, + "documentation": { + "id": 3670, + "nodeType": "StructuredDocumentation", + "src": "12099:143:16", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3708, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "12256:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3672, + "mutability": "mutable", + "name": "value", + "nameLocation": "12271:5:16", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12263:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12263:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "12287:8:16", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12278:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3674, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3673, + "name": "Rounding", + "nameLocations": [ + "12278:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2851, + "src": "12278:8:16" + }, + "referencedDeclaration": 2851, + "src": "12278:8:16", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2851", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "12262:34:16" + }, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12320:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12319:9:16" + }, + "scope": 3709, + "src": "12247:255:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3710, + "src": "202:12302:16", + "usedErrors": [] + } + ], + "src": "103:12402:16" + }, + "id": 16 + }, + "contracts/ERC5725.sol": { + "ast": { + "absolutePath": "contracts/ERC5725.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ] + }, + "id": 3994, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3711, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "id": 3712, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 2047, + "src": "62:57:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3713, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 778, + "src": "120:56:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "id": 3714, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 1120, + "src": "177:65:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3715, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 113, + "src": "243:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", + "file": "@openzeppelin/contracts/utils/Counters.sol", + "id": 3716, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 2634, + "src": "296:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/IERC5725.sol", + "file": "./IERC5725.sol", + "id": 3717, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3994, + "sourceUnit": 4076, + "src": "349:24:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 3718, + "name": "IERC5725", + "nameLocations": [ + "404:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "404:8:17" + }, + "id": 3719, + "nodeType": "InheritanceSpecifier", + "src": "404:8:17" + }, + { + "baseName": { + "id": 3720, + "name": "ERC721", + "nameLocations": [ + "414:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "414:6:17" + }, + "id": 3721, + "nodeType": "InheritanceSpecifier", + "src": "414:6:17" + } + ], + "canonicalName": "ERC5725", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": false, + "id": 3993, + "linearizedBaseContracts": [ + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "ERC5725", + "nameLocation": "393:7:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3725, + "libraryName": { + "id": 3722, + "name": "SafeERC20", + "nameLocations": [ + "433:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "433:9:17" + }, + "nodeType": "UsingForDirective", + "src": "427:27:17", + "typeName": { + "id": 3724, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3723, + "name": "IERC20", + "nameLocations": [ + "447:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "447:6:17" + }, + "referencedDeclaration": 777, + "src": "447:6:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "documentation": { + "id": 3726, + "nodeType": "StructuredDocumentation", + "src": "460:36:17", + "text": "@dev mapping for claimed payouts" + }, + "id": 3730, + "mutability": "mutable", + "name": "_payoutClaimed", + "nameLocation": "570:14:17", + "nodeType": "VariableDeclaration", + "scope": 3993, + "src": "501:83:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 3729, + "keyType": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "501:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 3728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "741:82:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3737, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "767:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3736, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "759:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "id": 3739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:27:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "typeString": "literal_string \"ERC5725: invalid token ID\"" + }, + "value": "ERC5725: invalid token ID" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "typeString": "literal_string \"ERC5725: invalid token ID\"" + } + ], + "id": 3735, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "751:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "751:54:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3741, + "nodeType": "ExpressionStatement", + "src": "751:54:17" + }, + { + "id": 3742, + "nodeType": "PlaceholderStatement", + "src": "815:1:17" + } + ] + }, + "documentation": { + "id": 3731, + "nodeType": "StructuredDocumentation", + "src": "591:108:17", + "text": " @notice Checks if the tokenId exists and its valid\n @param tokenId The NFT token id" + }, + "id": 3744, + "name": "validToken", + "nameLocation": "713:10:17", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "732:7:17", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "724:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "724:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "723:17:17" + }, + "src": "704:119:17", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4014 + ], + "body": { + "id": 3802, + "nodeType": "Block", + "src": "953:394:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3757, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "979:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3756, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "971:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "971:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3759, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "991:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "995:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "991:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "971:30:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1003:18:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "typeString": "literal_string \"Not owner of NFT\"" + }, + "value": "Not owner of NFT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "typeString": "literal_string \"Not owner of NFT\"" + } + ], + "id": 3755, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "963:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "963:59:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3764, + "nodeType": "ExpressionStatement", + "src": "963:59:17" + }, + { + "assignments": [ + 3766 + ], + "declarations": [ + { + "constant": false, + "id": 3766, + "mutability": "mutable", + "name": "amountClaimed", + "nameLocation": "1040:13:17", + "nodeType": "VariableDeclaration", + "scope": 3802, + "src": "1032:21:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1032:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3770, + "initialValue": { + "arguments": [ + { + "id": 3768, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1072:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3767, + "name": "claimablePayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1056:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1056:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1032:48:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3772, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1098:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1114:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1098:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "id": 3775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1117:28:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "typeString": "literal_string \"ERC5725: No pending payout\"" + }, + "value": "ERC5725: No pending payout" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "typeString": "literal_string \"ERC5725: No pending payout\"" + } + ], + "id": 3771, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1090:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1090:56:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3777, + "nodeType": "ExpressionStatement", + "src": "1090:56:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3779, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1176:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1185:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1189:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1185:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3782, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1197:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3778, + "name": "PayoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1162:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1162:49:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3784, + "nodeType": "EmitStatement", + "src": "1157:54:17" + }, + { + "expression": { + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3785, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "1222:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3787, + "indexExpression": { + "id": 3786, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1237:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1222:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 3788, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1249:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1222:40:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "1222:40:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3797, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1314:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1318:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1314:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3799, + "name": "amountClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "1326:13:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3793, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "1291:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3792, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "1279:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1279:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3791, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "1272:6:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1272:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1301:12:17", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 870, + "src": "1272:41:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 3800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1272:68:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3801, + "nodeType": "ExpressionStatement", + "src": "1272:68:17" + } + ] + }, + "documentation": { + "id": 3745, + "nodeType": "StructuredDocumentation", + "src": "829:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "379607f5", + "id": 3803, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3752, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "944:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3753, + "kind": "modifierInvocation", + "modifierName": { + "id": 3751, + "name": "validToken", + "nameLocations": [ + "933:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "933:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "933:19:17" + } + ], + "name": "claim", + "nameLocation": "882:5:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3750, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3749, + "name": "IERC5725", + "nameLocations": [ + "923:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "923:8:17" + } + ], + "src": "914:18:17" + }, + "parameters": { + "id": 3748, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3747, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "896:7:17", + "nodeType": "VariableDeclaration", + "scope": 3803, + "src": "888:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "888:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "887:17:17" + }, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [], + "src": "953:0:17" + }, + "scope": 3993, + "src": "873:474:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4038 + ], + "body": { + "id": 3819, + "nodeType": "Block", + "src": "1492:68:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1528:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3815, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1537:5:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1543:9:17", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1537:15:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3813, + "name": "vestedPayoutAtTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "1509:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 3817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1509:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3812, + "id": 3818, + "nodeType": "Return", + "src": "1502:51:17" + } + ] + }, + "documentation": { + "id": 3804, + "nodeType": "StructuredDocumentation", + "src": "1353:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "db900b9d", + "id": 3820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "vestedPayout", + "nameLocation": "1406:12:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3809, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3808, + "name": "IERC5725", + "nameLocations": [ + "1457:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1457:8:17" + } + ], + "src": "1448:18:17" + }, + "parameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1427:7:17", + "nodeType": "VariableDeclaration", + "scope": 3820, + "src": "1419:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1419:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1418:17:17" + }, + "returnParameters": { + "id": 3812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3811, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1484:6:17", + "nodeType": "VariableDeclaration", + "scope": 3820, + "src": "1476:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1476:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1475:16:17" + }, + "scope": 3993, + "src": "1397:163:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4048 + ], + "documentation": { + "id": 3821, + "nodeType": "StructuredDocumentation", + "src": "1566:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 3832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayoutAtTime", + "nameLocation": "1619:18:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3828, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3827, + "name": "IERC5725", + "nameLocations": [ + "1735:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1735:8:17" + } + ], + "src": "1726:18:17" + }, + "parameters": { + "id": 3826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3823, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1646:7:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1638:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1638:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3825, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1663:9:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1655:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1655:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1637:36:17" + }, + "returnParameters": { + "id": 3831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3830, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1770:6:17", + "nodeType": "VariableDeclaration", + "scope": 3832, + "src": "1762:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1762:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1761:16:17" + }, + "scope": 3993, + "src": "1610:168:17", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 4056 + ], + "body": { + "id": 3853, + "nodeType": "Block", + "src": "1988:64:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "2013:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3845, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2005:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2005:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 3849, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "2037:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3848, + "name": "vestedPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "2024:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2024:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2005:40:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3844, + "id": 3852, + "nodeType": "Return", + "src": "1998:47:17" + } + ] + }, + "documentation": { + "id": 3833, + "nodeType": "StructuredDocumentation", + "src": "1784:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "81d0526d", + "id": 3854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3840, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3835, + "src": "1942:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3841, + "kind": "modifierInvocation", + "modifierName": { + "id": 3839, + "name": "validToken", + "nameLocations": [ + "1931:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "1931:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "1931:19:17" + } + ], + "name": "vestingPayout", + "nameLocation": "1837:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3838, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3837, + "name": "IERC5725", + "nameLocations": [ + "1913:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "1913:8:17" + } + ], + "src": "1904:18:17" + }, + "parameters": { + "id": 3836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3835, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1859:7:17", + "nodeType": "VariableDeclaration", + "scope": 3854, + "src": "1851:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1851:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1850:17:17" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1976:6:17", + "nodeType": "VariableDeclaration", + "scope": 3854, + "src": "1968:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1968:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1967:16:17" + }, + "scope": 3993, + "src": "1828:224:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4030 + ], + "body": { + "id": 3875, + "nodeType": "Block", + "src": "2264:71:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3868, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2294:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3867, + "name": "vestedPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "2281:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2281:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "baseExpression": { + "id": 3870, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "2305:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3872, + "indexExpression": { + "id": 3871, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2320:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2305:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2281:47:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3866, + "id": 3874, + "nodeType": "Return", + "src": "2274:54:17" + } + ] + }, + "documentation": { + "id": 3855, + "nodeType": "StructuredDocumentation", + "src": "2058:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "9e0bd808", + "id": 3876, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "2218:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3863, + "kind": "modifierInvocation", + "modifierName": { + "id": 3861, + "name": "validToken", + "nameLocations": [ + "2207:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2207:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2207:19:17" + } + ], + "name": "claimablePayout", + "nameLocation": "2111:15:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3860, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3859, + "name": "IERC5725", + "nameLocations": [ + "2189:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2189:8:17" + } + ], + "src": "2180:18:17" + }, + "parameters": { + "id": 3858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2135:7:17", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "2127:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2127:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2126:17:17" + }, + "returnParameters": { + "id": 3866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3865, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2252:6:17", + "nodeType": "VariableDeclaration", + "scope": 3876, + "src": "2244:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2244:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2243:16:17" + }, + "scope": 3993, + "src": "2102:233:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4022 + ], + "body": { + "id": 3893, + "nodeType": "Block", + "src": "2545:47:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3889, + "name": "_payoutClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "2562:14:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3891, + "indexExpression": { + "id": 3890, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "2577:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2562:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3888, + "id": 3892, + "nodeType": "Return", + "src": "2555:30:17" + } + ] + }, + "documentation": { + "id": 3877, + "nodeType": "StructuredDocumentation", + "src": "2341:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "84e968e6", + "id": 3894, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3884, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "2499:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3885, + "kind": "modifierInvocation", + "modifierName": { + "id": 3883, + "name": "validToken", + "nameLocations": [ + "2488:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2488:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2488:19:17" + } + ], + "name": "claimedPayout", + "nameLocation": "2394:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3882, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3881, + "name": "IERC5725", + "nameLocations": [ + "2470:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2470:8:17" + } + ], + "src": "2461:18:17" + }, + "parameters": { + "id": 3880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3879, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2416:7:17", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "2408:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2408:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2407:17:17" + }, + "returnParameters": { + "id": 3888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3887, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2533:6:17", + "nodeType": "VariableDeclaration", + "scope": 3894, + "src": "2525:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2525:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2524:16:17" + }, + "scope": 3993, + "src": "2385:207:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4066 + ], + "body": { + "id": 3917, + "nodeType": "Block", + "src": "2828:64:17", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 3910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2857:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3909, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3984, + "src": "2846:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2846:19:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 3913, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2876:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3912, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3992, + "src": "2867:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2867:17:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3915, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2845:40:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 3908, + "id": 3916, + "nodeType": "Return", + "src": "2838:47:17" + } + ] + }, + "documentation": { + "id": 3895, + "nodeType": "StructuredDocumentation", + "src": "2598:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "576561d2", + "id": 3918, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3902, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3897, + "src": "2756:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3903, + "kind": "modifierInvocation", + "modifierName": { + "id": 3901, + "name": "validToken", + "nameLocations": [ + "2745:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2745:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "2745:19:17" + } + ], + "name": "vestingPeriod", + "nameLocation": "2651:13:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3900, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3899, + "name": "IERC5725", + "nameLocations": [ + "2727:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "2727:8:17" + } + ], + "src": "2718:18:17" + }, + "parameters": { + "id": 3898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3897, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2673:7:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2665:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2665:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2664:17:17" + }, + "returnParameters": { + "id": 3908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3905, + "mutability": "mutable", + "name": "vestingStart", + "nameLocation": "2790:12:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2782:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2782:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3907, + "mutability": "mutable", + "name": "vestingEnd", + "nameLocation": "2812:10:17", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "2804:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2804:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2781:42:17" + }, + "scope": 3993, + "src": "2642:250:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4074 + ], + "body": { + "id": 3935, + "nodeType": "Block", + "src": "3055:45:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3932, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3921, + "src": "3085:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3931, + "name": "_payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3968, + "src": "3072:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3072:21:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3930, + "id": 3934, + "nodeType": "Return", + "src": "3065:28:17" + } + ] + }, + "documentation": { + "id": 3919, + "nodeType": "StructuredDocumentation", + "src": "2898:39:17", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "8b9cb90b", + "id": 3936, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3926, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3921, + "src": "3022:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3927, + "kind": "modifierInvocation", + "modifierName": { + "id": 3925, + "name": "validToken", + "nameLocations": [ + "3011:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "3011:10:17" + }, + "nodeType": "ModifierInvocation", + "src": "3011:19:17" + } + ], + "name": "payoutToken", + "nameLocation": "2951:11:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3924, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3923, + "name": "IERC5725", + "nameLocations": [ + "3001:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4075, + "src": "3001:8:17" + } + ], + "src": "2992:18:17" + }, + "parameters": { + "id": 3922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3921, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2971:7:17", + "nodeType": "VariableDeclaration", + "scope": 3936, + "src": "2963:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2963:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2962:17:17" + }, + "returnParameters": { + "id": 3930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3929, + "mutability": "mutable", + "name": "token", + "nameLocation": "3048:5:17", + "nodeType": "VariableDeclaration", + "scope": 3936, + "src": "3040:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3040:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3039:15:17" + }, + "scope": 3993, + "src": "2942:158:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1213, + 2843 + ], + "body": { + "id": 3959, + "nodeType": "Block", + "src": "3370:105:17", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3947, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3939, + "src": "3387:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 3949, + "name": "IERC5725", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "3407:8:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC5725_$4075_$", + "typeString": "type(contract IERC5725)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC5725_$4075_$", + "typeString": "type(contract IERC5725)" + } + ], + "id": 3948, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3402:4:17", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3402:14:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC5725_$4075", + "typeString": "type(contract IERC5725)" + } + }, + "id": 3951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3417:11:17", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "3402:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3387:41:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3955, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3939, + "src": "3456:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3953, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3432:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC5725_$3993_$", + "typeString": "type(contract super ERC5725)" + } + }, + "id": 3954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3438:17:17", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1213, + "src": "3432:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3432:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3387:81:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3946, + "id": 3958, + "nodeType": "Return", + "src": "3380:88:17" + } + ] + }, + "documentation": { + "id": 3937, + "nodeType": "StructuredDocumentation", + "src": "3106:97:17", + "text": " @dev See {IERC165-supportsInterface}.\n IERC5725 interfaceId = 0xd707c82a" + }, + "functionSelector": "01ffc9a7", + "id": 3960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "3217:17:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3943, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3941, + "name": "ERC721", + "nameLocations": [ + "3316:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "3316:6:17" + }, + { + "id": 3942, + "name": "IERC165", + "nameLocations": [ + "3324:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2844, + "src": "3324:7:17" + } + ], + "src": "3307:25:17" + }, + "parameters": { + "id": 3940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3939, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "3242:11:17", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "3235:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3938, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3235:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "3234:20:17" + }, + "returnParameters": { + "id": 3946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3945, + "mutability": "mutable", + "name": "supported", + "nameLocation": "3355:9:17", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "3350:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3944, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3350:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3349:16:17" + }, + "scope": 3993, + "src": "3208:267:17", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "documentation": { + "id": 3961, + "nodeType": "StructuredDocumentation", + "src": "3481:204:17", + "text": " @dev Internal function to get the payout token of a given vesting NFT\n @param tokenId on which to check the payout token address\n @return address payout token address" + }, + "id": 3968, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "3699:12:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3963, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3720:7:17", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "3712:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3712:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3711:17:17" + }, + "returnParameters": { + "id": 3967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3966, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "3760:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3759:9:17" + }, + "scope": 3993, + "src": "3690:79:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3969, + "nodeType": "StructuredDocumentation", + "src": "3775:289:17", + "text": " @dev Internal function to get the total payout of a given vesting NFT.\n @dev This is the total that will be paid out to the NFT owner, including historical tokens.\n @param tokenId to check\n @return uint256 the total payout of a given vesting NFT" + }, + "id": 3976, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "4078:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3971, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4094:7:17", + "nodeType": "VariableDeclaration", + "scope": 3976, + "src": "4086:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4086:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4085:17:17" + }, + "returnParameters": { + "id": 3975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3974, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3976, + "src": "4134:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4134:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4133:9:17" + }, + "scope": 3993, + "src": "4069:74:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3977, + "nodeType": "StructuredDocumentation", + "src": "4149:181:17", + "text": " @dev Internal function to get the start time of a given vesting NFT\n @param tokenId to check\n @return uint256 the start time in epoch timestamp" + }, + "id": 3984, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "4344:10:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3980, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3979, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4363:7:17", + "nodeType": "VariableDeclaration", + "scope": 3984, + "src": "4355:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4355:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4354:17:17" + }, + "returnParameters": { + "id": 3983, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3982, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3984, + "src": "4403:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4403:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4402:9:17" + }, + "scope": 3993, + "src": "4335:77:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3985, + "nodeType": "StructuredDocumentation", + "src": "4418:177:17", + "text": " @dev Internal function to get the end time of a given vesting NFT\n @param tokenId to check\n @return uint256 the end time in epoch timestamp" + }, + "id": 3992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "4609:8:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3987, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4626:7:17", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4618:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4618:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4617:17:17" + }, + "returnParameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3990, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3992, + "src": "4666:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4666:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4665:9:17" + }, + "scope": 3993, + "src": "4600:75:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3994, + "src": "375:4302:17", + "usedErrors": [] + } + ], + "src": "36:4642:17" + }, + "id": 17 + }, + "contracts/IERC5725.sol": { + "ast": { + "absolutePath": "contracts/IERC5725.sol", + "exportedSymbols": { + "IERC165": [ + 2844 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ] + }, + "id": 4076, + "license": "CC0-1.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3995, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "36:23:18" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "id": 3996, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4076, + "sourceUnit": 2163, + "src": "60:58:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3998, + "name": "IERC721", + "nameLocations": [ + "572:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2162, + "src": "572:7:18" + }, + "id": 3999, + "nodeType": "InheritanceSpecifier", + "src": "572:7:18" + } + ], + "canonicalName": "IERC5725", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3997, + "nodeType": "StructuredDocumentation", + "src": "120:429:18", + "text": " @title Non-Fungible Vesting Token Standard\n @notice A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve\n scheduled using timestamps.\n @dev Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the\n tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT." + }, + "fullyImplemented": false, + "id": 4075, + "linearizedBaseContracts": [ + 4075, + 2162, + 2844 + ], + "name": "IERC5725", + "nameLocation": "560:8:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 4000, + "nodeType": "StructuredDocumentation", + "src": "586:294:18", + "text": " This event is emitted when the payout is claimed through the claim function\n @param tokenId the NFT tokenId of the assets being claimed.\n @param recipient The address which is receiving the payout.\n @param claimAmount The amount of tokens being claimed." + }, + "eventSelector": "e97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312", + "id": 4008, + "name": "PayoutClaimed", + "nameLocation": "891:13:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 4007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4002, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "921:7:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "905:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "905:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4004, + "indexed": true, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "946:9:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "930:25:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "930:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4006, + "indexed": false, + "mutability": "mutable", + "name": "claimAmount", + "nameLocation": "965:11:18", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "957:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "957:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "904:73:18" + }, + "src": "885:93:18" + }, + { + "documentation": { + "id": 4009, + "nodeType": "StructuredDocumentation", + "src": "984:336:18", + "text": " @notice Claim the pending payout for the NFT\n @dev MUST grant the claimablePayout value at the time of claim being called\n MUST revert if not called by the token owner or approved users\n MUST emit PayoutClaimed\n SHOULD revert if there is nothing to claim\n @param tokenId The NFT token id" + }, + "functionSelector": "379607f5", + "id": 4014, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claim", + "nameLocation": "1334:5:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4011, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1348:7:18", + "nodeType": "VariableDeclaration", + "scope": 4014, + "src": "1340:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1340:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1339:17:18" + }, + "returnParameters": { + "id": 4013, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:0:18" + }, + "scope": 4075, + "src": "1325:41:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4015, + "nodeType": "StructuredDocumentation", + "src": "1372:220:18", + "text": " @notice Number of tokens for the NFT which have been claimed at the current timestamp\n @param tokenId The NFT token id\n @return payout The total amount of payout tokens claimed for this NFT" + }, + "functionSelector": "84e968e6", + "id": 4022, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimedPayout", + "nameLocation": "1606:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4017, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1628:7:18", + "nodeType": "VariableDeclaration", + "scope": 4022, + "src": "1620:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1620:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1619:17:18" + }, + "returnParameters": { + "id": 4021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4020, + "mutability": "mutable", + "name": "payout", + "nameLocation": "1668:6:18", + "nodeType": "VariableDeclaration", + "scope": 4022, + "src": "1660:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1659:16:18" + }, + "scope": 4075, + "src": "1597:79:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4023, + "nodeType": "StructuredDocumentation", + "src": "1682:356:18", + "text": " @notice Number of tokens for the NFT which can be claimed at the current timestamp\n @dev It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\n @param tokenId The NFT token id\n @return payout The amount of unlocked payout tokens for the NFT which have not yet been claimed" + }, + "functionSelector": "9e0bd808", + "id": 4030, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimablePayout", + "nameLocation": "2052:15:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4025, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2076:7:18", + "nodeType": "VariableDeclaration", + "scope": 4030, + "src": "2068:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2067:17:18" + }, + "returnParameters": { + "id": 4029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4028, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2116:6:18", + "nodeType": "VariableDeclaration", + "scope": 4030, + "src": "2108:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2107:16:18" + }, + "scope": 4075, + "src": "2043:81:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4031, + "nodeType": "StructuredDocumentation", + "src": "2130:443:18", + "text": " @notice Total amount of tokens which have been vested at the current timestamp.\n This number also includes vested tokens which have been claimed.\n @dev It is RECOMMENDED that this function calls `vestedPayoutAtTime` with\n `block.timestamp` as the `timestamp` parameter.\n @param tokenId The NFT token id\n @return payout Total amount of tokens which have been vested at the current timestamp." + }, + "functionSelector": "db900b9d", + "id": 4038, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayout", + "nameLocation": "2587:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4033, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2608:7:18", + "nodeType": "VariableDeclaration", + "scope": 4038, + "src": "2600:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2600:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2599:17:18" + }, + "returnParameters": { + "id": 4037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4036, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2648:6:18", + "nodeType": "VariableDeclaration", + "scope": 4038, + "src": "2640:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2640:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2639:16:18" + }, + "scope": 4075, + "src": "2578:78:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4039, + "nodeType": "StructuredDocumentation", + "src": "2662:525:18", + "text": " @notice Total amount of vested tokens at the provided timestamp.\n This number also includes vested tokens which have been claimed.\n @dev `timestamp` MAY be both in the future and in the past.\n Zero MUST be returned if the timestamp is before the token was minted.\n @param tokenId The NFT token id\n @param timestamp The timestamp to check on, can be both in the past and the future\n @return payout Total amount of tokens which have been vested at the provided timestamp" + }, + "functionSelector": "d744515f", + "id": 4048, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestedPayoutAtTime", + "nameLocation": "3201:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4041, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3228:7:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3220:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3220:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4043, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "3245:9:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3237:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3237:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3219:36:18" + }, + "returnParameters": { + "id": 4047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4046, + "mutability": "mutable", + "name": "payout", + "nameLocation": "3287:6:18", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "3279:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3279:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3278:16:18" + }, + "scope": 4075, + "src": "3192:103:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4049, + "nodeType": "StructuredDocumentation", + "src": "3301:305:18", + "text": " @notice Number of tokens for an NFT which are currently vesting.\n @dev The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\n @param tokenId The NFT token id\n @return payout The number of tokens for the NFT which are vesting until a future date." + }, + "functionSelector": "81d0526d", + "id": 4056, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestingPayout", + "nameLocation": "3620:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4051, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3642:7:18", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "3634:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3634:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3633:17:18" + }, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4054, + "mutability": "mutable", + "name": "payout", + "nameLocation": "3682:6:18", + "nodeType": "VariableDeclaration", + "scope": 4056, + "src": "3674:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3674:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3673:16:18" + }, + "scope": 4075, + "src": "3611:79:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4057, + "nodeType": "StructuredDocumentation", + "src": "3696:379:18", + "text": " @notice The start and end timestamps for the vesting of the provided NFT\n MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\n @param tokenId The NFT token id\n @return vestingStart The beginning of the vesting as a unix timestamp\n @return vestingEnd The ending of the vesting as a unix timestamp" + }, + "functionSelector": "576561d2", + "id": 4066, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vestingPeriod", + "nameLocation": "4089:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4059, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4111:7:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4103:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4103:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4102:17:18" + }, + "returnParameters": { + "id": 4065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4062, + "mutability": "mutable", + "name": "vestingStart", + "nameLocation": "4151:12:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4143:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4143:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4064, + "mutability": "mutable", + "name": "vestingEnd", + "nameLocation": "4173:10:18", + "nodeType": "VariableDeclaration", + "scope": 4066, + "src": "4165:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4165:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4142:42:18" + }, + "scope": 4075, + "src": "4080:105:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4067, + "nodeType": "StructuredDocumentation", + "src": "4191:190:18", + "text": " @notice Token which is used to pay out the vesting claims\n @param tokenId The NFT token id\n @return token The token which is used to pay out the vesting claims" + }, + "functionSelector": "8b9cb90b", + "id": 4074, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "payoutToken", + "nameLocation": "4395:11:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4069, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4415:7:18", + "nodeType": "VariableDeclaration", + "scope": 4074, + "src": "4407:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4407:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4406:17:18" + }, + "returnParameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4072, + "mutability": "mutable", + "name": "token", + "nameLocation": "4455:5:18", + "nodeType": "VariableDeclaration", + "scope": 4074, + "src": "4447:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4446:15:18" + }, + "scope": 4075, + "src": "4386:76:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4076, + "src": "550:3914:18", + "usedErrors": [] + } + ], + "src": "36:4429:18" + }, + "id": 18 + }, + "contracts/mocks/ERC20Mock.sol": { + "ast": { + "absolutePath": "contracts/mocks/ERC20Mock.sol", + "exportedSymbols": { + "Context": [ + 2559 + ], + "ERC20": [ + 699 + ], + "ERC20Mock": [ + 4131 + ], + "IERC20": [ + 777 + ], + "IERC20Metadata": [ + 802 + ] + }, + "id": 4132, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4077, + "literals": [ + "solidity", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:23:19" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 4078, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4132, + "sourceUnit": 700, + "src": "61:55:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4079, + "name": "ERC20", + "nameLocations": [ + "140:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 699, + "src": "140:5:19" + }, + "id": 4080, + "nodeType": "InheritanceSpecifier", + "src": "140:5:19" + } + ], + "canonicalName": "ERC20Mock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4131, + "linearizedBaseContracts": [ + 4131, + 699, + 802, + 777, + 2559 + ], + "name": "ERC20Mock", + "nameLocation": "127:9:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4082, + "mutability": "mutable", + "name": "_decimals", + "nameLocation": "166:9:19", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "152:23:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4081, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "152:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4107, + "nodeType": "Block", + "src": "332:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4098, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "348:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "352:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "348:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4100, + "name": "supply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4084, + "src": "360:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4097, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "342:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "342:26:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4102, + "nodeType": "ExpressionStatement", + "src": "342:26:19" + }, + { + "expression": { + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4103, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4082, + "src": "378:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4104, + "name": "decimals_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4086, + "src": "390:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "378:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 4106, + "nodeType": "ExpressionStatement", + "src": "378:21:19" + } + ] + }, + "id": 4108, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4093, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4088, + "src": "316:5:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4094, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4090, + "src": "323:7:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4095, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4092, + "name": "ERC20", + "nameLocations": [ + "310:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 699, + "src": "310:5:19" + }, + "nodeType": "ModifierInvocation", + "src": "310:21:19" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4084, + "mutability": "mutable", + "name": "supply_", + "nameLocation": "211:7:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "203:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4083, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "203:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4086, + "mutability": "mutable", + "name": "decimals_", + "nameLocation": "234:9:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "228:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4085, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "228:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4088, + "mutability": "mutable", + "name": "name_", + "nameLocation": "267:5:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "253:19:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4087, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4090, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "296:7:19", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "282:21:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4089, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "282:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "193:116:19" + }, + "returnParameters": { + "id": 4096, + "nodeType": "ParameterList", + "parameters": [], + "src": "332:0:19" + }, + "scope": 4131, + "src": "182:224:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4120, + "nodeType": "Block", + "src": "461:34:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4116, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "477:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4117, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "481:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4115, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "471:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "471:17:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "471:17:19" + } + ] + }, + "functionSelector": "94bf804d", + "id": 4121, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "421:4:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4110, + "mutability": "mutable", + "name": "amount", + "nameLocation": "434:6:19", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "426:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4112, + "mutability": "mutable", + "name": "to", + "nameLocation": "450:2:19", + "nodeType": "VariableDeclaration", + "scope": 4121, + "src": "442:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "442:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "425:28:19" + }, + "returnParameters": { + "id": 4114, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:0:19" + }, + "scope": 4131, + "src": "412:83:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 187 + ], + "body": { + "id": 4129, + "nodeType": "Block", + "src": "566:33:19", + "statements": [ + { + "expression": { + "id": 4127, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4082, + "src": "583:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 4126, + "id": 4128, + "nodeType": "Return", + "src": "576:16:19" + } + ] + }, + "functionSelector": "313ce567", + "id": 4130, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "510:8:19", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4123, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "541:8:19" + }, + "parameters": { + "id": 4122, + "nodeType": "ParameterList", + "parameters": [], + "src": "518:2:19" + }, + "returnParameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4130, + "src": "559:5:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4124, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "559:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "558:7:19" + }, + "scope": 4131, + "src": "501:98:19", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 4132, + "src": "118:483:19", + "usedErrors": [] + } + ], + "src": "36:566:19" + }, + "id": 19 + }, + "contracts/reference/LinearVestingNFT.sol": { + "ast": { + "absolutePath": "contracts/reference/LinearVestingNFT.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "LinearVestingNFT": [ + 4398 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ] + }, + "id": 4399, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4133, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:20" + }, + { + "absolutePath": "contracts/ERC5725.sol", + "file": "../ERC5725.sol", + "id": 4134, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4399, + "sourceUnit": 3994, + "src": "62:24:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4135, + "name": "ERC5725", + "nameLocations": [ + "117:7:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "117:7:20" + }, + "id": 4136, + "nodeType": "InheritanceSpecifier", + "src": "117:7:20" + } + ], + "canonicalName": "LinearVestingNFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4398, + "linearizedBaseContracts": [ + 4398, + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "LinearVestingNFT", + "nameLocation": "97:16:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4140, + "libraryName": { + "id": 4137, + "name": "SafeERC20", + "nameLocations": [ + "137:9:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "137:9:20" + }, + "nodeType": "UsingForDirective", + "src": "131:27:20", + "typeName": { + "id": 4139, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4138, + "name": "IERC20", + "nameLocations": [ + "151:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "151:6:20" + }, + "referencedDeclaration": 777, + "src": "151:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "LinearVestingNFT.VestDetails", + "id": 4156, + "members": [ + { + "constant": false, + "id": 4143, + "mutability": "mutable", + "name": "payoutToken", + "nameLocation": "200:11:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "193:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4142, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4141, + "name": "IERC20", + "nameLocations": [ + "193:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "193:6:20" + }, + "referencedDeclaration": 777, + "src": "193:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4146, + "mutability": "mutable", + "name": "payout", + "nameLocation": "251:6:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "243:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "243:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4149, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "318:9:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "310:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4148, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4152, + "mutability": "mutable", + "name": "endTime", + "nameLocation": "374:7:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "366:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4151, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "366:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4155, + "mutability": "mutable", + "name": "cliff", + "nameLocation": "425:5:20", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "417:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4154, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "417:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "VestDetails", + "nameLocation": "171:11:20", + "nodeType": "StructDefinition", + "scope": 4398, + "src": "164:355:20", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "03101bfd", + "id": 4161, + "mutability": "mutable", + "name": "vestDetails", + "nameLocation": "563:11:20", + "nodeType": "VariableDeclaration", + "scope": 4398, + "src": "524:50:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails)" + }, + "typeName": { + "id": 4160, + "keyType": { + "id": 4157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "532:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "524:31:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails)" + }, + "valueType": { + "id": 4159, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4158, + "name": "VestDetails", + "nameLocations": [ + "543:11:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4156, + "src": "543:11:20" + }, + "referencedDeclaration": 4156, + "src": "543:11:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage_ptr", + "typeString": "struct LinearVestingNFT.VestDetails" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4162, + "nodeType": "StructuredDocumentation", + "src": "626:34:20", + "text": "@dev tracker of current NFT id" + }, + "id": 4164, + "mutability": "mutable", + "name": "_tokenIdTracker", + "nameLocation": "681:15:20", + "nodeType": "VariableDeclaration", + "scope": 4398, + "src": "665:31:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4176, + "nodeType": "Block", + "src": "822:2:20", + "statements": [] + }, + "documentation": { + "id": 4165, + "nodeType": "StructuredDocumentation", + "src": "703:39:20", + "text": " @dev See {IERC5725}." + }, + "id": 4177, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4172, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4167, + "src": "808:4:20", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4173, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4169, + "src": "814:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4174, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4171, + "name": "ERC721", + "nameLocations": [ + "801:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "801:6:20" + }, + "nodeType": "ModifierInvocation", + "src": "801:20:20" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4167, + "mutability": "mutable", + "name": "name", + "nameLocation": "773:4:20", + "nodeType": "VariableDeclaration", + "scope": 4177, + "src": "759:18:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4166, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "759:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4169, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "793:6:20", + "nodeType": "VariableDeclaration", + "scope": 4177, + "src": "779:20:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "779:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "758:42:20" + }, + "returnParameters": { + "id": 4175, + "nodeType": "ParameterList", + "parameters": [], + "src": "822:0:20" + }, + "scope": 4398, + "src": "747:77:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4262, + "nodeType": "Block", + "src": "1511:660:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4195, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1529:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 4196, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1542:5:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1548:9:20", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1542:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1529:28:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "737461727454696d652063616e6e6f74206265206f6e207468652070617374", + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1559:33:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "typeString": "literal_string \"startTime cannot be on the past\"" + }, + "value": "startTime cannot be on the past" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "typeString": "literal_string \"startTime cannot be on the past\"" + } + ], + "id": 4194, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1521:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1521:72:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4201, + "nodeType": "ExpressionStatement", + "src": "1521:72:20" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4203, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4180, + "src": "1611:2:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1625:1:20", + "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": 4205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1617:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1617:7:20", + "typeDescriptions": {} + } + }, + "id": 4207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1617:10:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1611:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "id": 4209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1629:24:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + }, + "value": "to cannot be address 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + } + ], + "id": 4202, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1603:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1603:51:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4211, + "nodeType": "ExpressionStatement", + "src": "1603:51:20" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4213, + "name": "cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "1672:5:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4214, + "name": "duration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4186, + "src": "1681:8:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1672:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6475726174696f6e206e6565647320746f206265206d6f7265207468616e20636c696666", + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1691:38:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "typeString": "literal_string \"duration needs to be more than cliff\"" + }, + "value": "duration needs to be more than cliff" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "typeString": "literal_string \"duration needs to be more than cliff\"" + } + ], + "id": 4212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1664:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1664:66:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4218, + "nodeType": "ExpressionStatement", + "src": "1664:66:20" + }, + { + "assignments": [ + 4220 + ], + "declarations": [ + { + "constant": false, + "id": 4220, + "mutability": "mutable", + "name": "newTokenId", + "nameLocation": "1749:10:20", + "nodeType": "VariableDeclaration", + "scope": 4262, + "src": "1741:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1741:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4222, + "initialValue": { + "id": 4221, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4164, + "src": "1762:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1741:36:20" + }, + { + "expression": { + "id": 4237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4223, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "1788:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4225, + "indexExpression": { + "id": 4224, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "1800:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1788:23:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4227, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4191, + "src": "1853:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "id": 4228, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4182, + "src": "1880:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4229, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1911:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4230, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1943:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4231, + "name": "duration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4186, + "src": "1955:8:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1943:20:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 4235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4233, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4184, + "src": "1984:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4234, + "name": "cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4188, + "src": "1996:5:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "1984:17:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "id": 4226, + "name": "VestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "1814:11:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_VestDetails_$4156_storage_ptr_$", + "typeString": "type(struct LinearVestingNFT.VestDetails storage pointer)" + } + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "1840:11:20", + "1872:6:20", + "1900:9:20", + "1934:7:20", + "1977:5:20" + ], + "names": [ + "payoutToken", + "payout", + "startTime", + "endTime", + "cliff" + ], + "nodeType": "FunctionCall", + "src": "1814:198:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_memory_ptr", + "typeString": "struct LinearVestingNFT.VestDetails memory" + } + }, + "src": "1788:224:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4238, + "nodeType": "ExpressionStatement", + "src": "1788:224:20" + }, + { + "expression": { + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2023:17:20", + "subExpression": { + "id": 4239, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4164, + "src": "2023:15:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4241, + "nodeType": "ExpressionStatement", + "src": "2023:17:20" + }, + { + "expression": { + "arguments": [ + { + "id": 4243, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4180, + "src": "2056:2:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4244, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "2060:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4242, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "2050:5:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2050:21:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4246, + "nodeType": "ExpressionStatement", + "src": "2050:21:20" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4253, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2130:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2134:6:20", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2130:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4257, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2150:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LinearVestingNFT_$4398", + "typeString": "contract LinearVestingNFT" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LinearVestingNFT_$4398", + "typeString": "contract LinearVestingNFT" + } + ], + "id": 4256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2142:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2142:7:20", + "typeDescriptions": {} + } + }, + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2142:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4259, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4182, + "src": "2157:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4249, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4220, + "src": "2100:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4248, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "2088:11:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2088:23:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4247, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "2081:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2081:31:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2113:16:20", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 896, + "src": "2081:48:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 4260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2081:83:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4261, + "nodeType": "ExpressionStatement", + "src": "2081:83:20" + } + ] + }, + "documentation": { + "id": 4178, + "nodeType": "StructuredDocumentation", + "src": "830:497:20", + "text": " @notice Creates a new vesting NFT and mints it\n @dev Token amount should be approved to be transferred by this contract before executing create\n @param to The recipient of the NFT\n @param amount The total assets to be locked over time\n @param startTime When the vesting starts in epoch timestamp\n @param duration The vesting duration in seconds\n @param cliff The cliff duration in seconds\n @param token The ERC20 token to vest over time" + }, + "functionSelector": "c196f42f", + "id": 4263, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "create", + "nameLocation": "1341:6:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4180, + "mutability": "mutable", + "name": "to", + "nameLocation": "1365:2:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1357:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1357:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4182, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1385:6:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1377:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1377:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4184, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "1409:9:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1401:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4183, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1401:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4186, + "mutability": "mutable", + "name": "duration", + "nameLocation": "1436:8:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1428:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4185, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1428:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4188, + "mutability": "mutable", + "name": "cliff", + "nameLocation": "1462:5:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1454:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4187, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1454:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4191, + "mutability": "mutable", + "name": "token", + "nameLocation": "1484:5:20", + "nodeType": "VariableDeclaration", + "scope": 4263, + "src": "1477:12:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4190, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4189, + "name": "IERC20", + "nameLocations": [ + "1477:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1477:6:20" + }, + "referencedDeclaration": 777, + "src": "1477:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "1347:148:20" + }, + "returnParameters": { + "id": 4193, + "nodeType": "ParameterList", + "parameters": [], + "src": "1511:0:20" + }, + "scope": 4398, + "src": "1332:839:20", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3832 + ], + "body": { + "id": 4319, + "nodeType": "Block", + "src": "2404:289:20", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4278, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2418:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [ + { + "id": 4280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2437:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4279, + "name": "_cliff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4397, + "src": "2430:6:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2430:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2418:27:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4286, + "nodeType": "IfStatement", + "src": "2414:66:20", + "trueBody": { + "id": 4285, + "nodeType": "Block", + "src": "2447:33:20", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 4277, + "id": 4284, + "nodeType": "Return", + "src": "2461:8:20" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4287, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2493:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "id": 4289, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2514:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4288, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4383 + ], + "referencedDeclaration": 4383, + "src": "2505:8:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2505:17:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2493:29:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4297, + "nodeType": "IfStatement", + "src": "2489:83:20", + "trueBody": { + "id": 4296, + "nodeType": "Block", + "src": "2524:48:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4293, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2553:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4292, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4353 + ], + "referencedDeclaration": 4353, + "src": "2545:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2545:16:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4277, + "id": 4295, + "nodeType": "Return", + "src": "2538:23:20" + } + ] + } + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4299, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2597:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4298, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4353 + ], + "referencedDeclaration": 4353, + "src": "2589:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2589:16:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4301, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4268, + "src": "2609:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 4303, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2632:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4302, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4368 + ], + "referencedDeclaration": 4368, + "src": "2621:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2621:19:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2609:31:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4306, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2608:33:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2589:52:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4308, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2588:54:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4310, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2655:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4309, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4383 + ], + "referencedDeclaration": 4383, + "src": "2646:8:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2646:17:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 4313, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2677:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4312, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4368 + ], + "referencedDeclaration": 4368, + "src": "2666:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2666:19:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2646:39:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4316, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2645:41:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2588:98:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4277, + "id": 4318, + "nodeType": "Return", + "src": "2581:105:20" + } + ] + }, + "documentation": { + "id": 4264, + "nodeType": "StructuredDocumentation", + "src": "2177:39:20", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 4320, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 4273, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "2358:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4274, + "kind": "modifierInvocation", + "modifierName": { + "id": 4272, + "name": "validToken", + "nameLocations": [ + "2347:10:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2347:10:20" + }, + "nodeType": "ModifierInvocation", + "src": "2347:19:20" + } + ], + "name": "vestedPayoutAtTime", + "nameLocation": "2230:18:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4271, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 4270, + "name": "ERC5725", + "nameLocations": [ + "2330:7:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "2330:7:20" + } + ], + "src": "2321:17:20" + }, + "parameters": { + "id": 4269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4266, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2257:7:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2249:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2249:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4268, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "2274:9:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2266:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2266:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2248:36:20" + }, + "returnParameters": { + "id": 4277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4276, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2392:6:20", + "nodeType": "VariableDeclaration", + "scope": 4320, + "src": "2384:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2384:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2383:16:20" + }, + "scope": 4398, + "src": "2221:472:20", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3968 + ], + "body": { + "id": 4337, + "nodeType": "Block", + "src": "2822:65:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 4331, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "2847:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4333, + "indexExpression": { + "id": 4332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "2859:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2847:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4334, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2868:11:20", + "memberName": "payoutToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 4143, + "src": "2847:32:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 4330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2839:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4329, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2839:7:20", + "typeDescriptions": {} + } + }, + "id": 4335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2839:41:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4328, + "id": 4336, + "nodeType": "Return", + "src": "2832:48:20" + } + ] + }, + "documentation": { + "id": 4321, + "nodeType": "StructuredDocumentation", + "src": "2699:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "2751:12:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4325, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2795:8:20" + }, + "parameters": { + "id": 4324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4323, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2772:7:20", + "nodeType": "VariableDeclaration", + "scope": 4338, + "src": "2764:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2764:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2763:17:20" + }, + "returnParameters": { + "id": 4328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4327, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4338, + "src": "2813:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2813:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2812:9:20" + }, + "scope": 4398, + "src": "2742:145:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3976 + ], + "body": { + "id": 4352, + "nodeType": "Block", + "src": "3011:51:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4347, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3028:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4349, + "indexExpression": { + "id": 4348, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4341, + "src": "3040:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3028:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3049:6:20", + "memberName": "payout", + "nodeType": "MemberAccess", + "referencedDeclaration": 4146, + "src": "3028:27:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4346, + "id": 4351, + "nodeType": "Return", + "src": "3021:34:20" + } + ] + }, + "documentation": { + "id": 4339, + "nodeType": "StructuredDocumentation", + "src": "2893:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4353, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "2945:7:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4343, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2984:8:20" + }, + "parameters": { + "id": 4342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4341, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2961:7:20", + "nodeType": "VariableDeclaration", + "scope": 4353, + "src": "2953:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2953:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2952:17:20" + }, + "returnParameters": { + "id": 4346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4345, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4353, + "src": "3002:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3002:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3001:9:20" + }, + "scope": 4398, + "src": "2936:126:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3984 + ], + "body": { + "id": 4367, + "nodeType": "Block", + "src": "3189:54:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4362, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3206:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4364, + "indexExpression": { + "id": 4363, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4356, + "src": "3218:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3206:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4365, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3227:9:20", + "memberName": "startTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4149, + "src": "3206:30:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4361, + "id": 4366, + "nodeType": "Return", + "src": "3199:37:20" + } + ] + }, + "documentation": { + "id": 4354, + "nodeType": "StructuredDocumentation", + "src": "3068:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4368, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "3120:10:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4358, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3162:8:20" + }, + "parameters": { + "id": 4357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4356, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3139:7:20", + "nodeType": "VariableDeclaration", + "scope": 4368, + "src": "3131:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3131:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3130:17:20" + }, + "returnParameters": { + "id": 4361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4360, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4368, + "src": "3180:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3180:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3179:9:20" + }, + "scope": 4398, + "src": "3111:132:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3992 + ], + "body": { + "id": 4382, + "nodeType": "Block", + "src": "3368:52:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4377, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3385:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4379, + "indexExpression": { + "id": 4378, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "3397:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3385:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:7:20", + "memberName": "endTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4152, + "src": "3385:28:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4376, + "id": 4381, + "nodeType": "Return", + "src": "3378:35:20" + } + ] + }, + "documentation": { + "id": 4369, + "nodeType": "StructuredDocumentation", + "src": "3249:38:20", + "text": " @dev See {ERC5725}." + }, + "id": 4383, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "3301:8:20", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4373, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3341:8:20" + }, + "parameters": { + "id": 4372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4371, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3318:7:20", + "nodeType": "VariableDeclaration", + "scope": 4383, + "src": "3310:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3309:17:20" + }, + "returnParameters": { + "id": 4376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4375, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4383, + "src": "3359:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3359:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3358:9:20" + }, + "scope": 4398, + "src": "3292:128:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4396, + "nodeType": "Block", + "src": "3676:50:20", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4391, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "3693:11:20", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4156_storage_$", + "typeString": "mapping(uint256 => struct LinearVestingNFT.VestDetails storage ref)" + } + }, + "id": 4393, + "indexExpression": { + "id": 4392, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4386, + "src": "3705:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3693:20:20", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4156_storage", + "typeString": "struct LinearVestingNFT.VestDetails storage ref" + } + }, + "id": 4394, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3714:5:20", + "memberName": "cliff", + "nodeType": "MemberAccess", + "referencedDeclaration": 4155, + "src": "3693:26:20", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4390, + "id": 4395, + "nodeType": "Return", + "src": "3686:33:20" + } + ] + }, + "documentation": { + "id": 4384, + "nodeType": "StructuredDocumentation", + "src": "3426:180:20", + "text": " @dev Internal function to get the cliff time of a given linear vesting NFT\n @param tokenId to check\n @return uint256 the cliff time in seconds" + }, + "id": 4397, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_cliff", + "nameLocation": "3620:6:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4386, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3635:7:20", + "nodeType": "VariableDeclaration", + "scope": 4397, + "src": "3627:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3627:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3626:17:20" + }, + "returnParameters": { + "id": 4390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4389, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4397, + "src": "3667:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3667:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3666:9:20" + }, + "scope": 4398, + "src": "3611:115:20", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4399, + "src": "88:3640:20", + "usedErrors": [] + } + ], + "src": "36:3693:20" + }, + "id": 20 + }, + "contracts/reference/VestingNFT.sol": { + "ast": { + "absolutePath": "contracts/reference/VestingNFT.sol", + "exportedSymbols": { + "Address": [ + 2537 + ], + "Context": [ + 2559 + ], + "Counters": [ + 2633 + ], + "ERC165": [ + 2832 + ], + "ERC5725": [ + 3993 + ], + "ERC721": [ + 2046 + ], + "IERC165": [ + 2844 + ], + "IERC20": [ + 777 + ], + "IERC20Permit": [ + 838 + ], + "IERC5725": [ + 4075 + ], + "IERC721": [ + 2162 + ], + "IERC721Metadata": [ + 2207 + ], + "IERC721Receiver": [ + 2180 + ], + "Math": [ + 3709 + ], + "Ownable": [ + 112 + ], + "SafeERC20": [ + 1119 + ], + "Strings": [ + 2808 + ], + "VestingNFT": [ + 4608 + ] + }, + "id": 4609, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4400, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "36:24:21" + }, + { + "absolutePath": "contracts/ERC5725.sol", + "file": "../ERC5725.sol", + "id": 4401, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4609, + "sourceUnit": 3994, + "src": "62:24:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4402, + "name": "ERC5725", + "nameLocations": [ + "111:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "111:7:21" + }, + "id": 4403, + "nodeType": "InheritanceSpecifier", + "src": "111:7:21" + } + ], + "canonicalName": "VestingNFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4608, + "linearizedBaseContracts": [ + 4608, + 3993, + 2046, + 2207, + 4075, + 2162, + 2832, + 2844, + 2559 + ], + "name": "VestingNFT", + "nameLocation": "97:10:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4407, + "libraryName": { + "id": 4404, + "name": "SafeERC20", + "nameLocations": [ + "131:9:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1119, + "src": "131:9:21" + }, + "nodeType": "UsingForDirective", + "src": "125:27:21", + "typeName": { + "id": 4406, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4405, + "name": "IERC20", + "nameLocations": [ + "145:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "145:6:21" + }, + "referencedDeclaration": 777, + "src": "145:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "VestingNFT.VestDetails", + "id": 4420, + "members": [ + { + "constant": false, + "id": 4410, + "mutability": "mutable", + "name": "payoutToken", + "nameLocation": "194:11:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "187:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4409, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4408, + "name": "IERC20", + "nameLocations": [ + "187:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "187:6:21" + }, + "referencedDeclaration": 777, + "src": "187:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4413, + "mutability": "mutable", + "name": "payout", + "nameLocation": "245:6:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "237:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "237:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4416, + "mutability": "mutable", + "name": "startTime", + "nameLocation": "312:9:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "304:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4415, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "304:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4419, + "mutability": "mutable", + "name": "endTime", + "nameLocation": "368:7:21", + "nodeType": "VariableDeclaration", + "scope": 4420, + "src": "360:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4418, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "360:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "VestDetails", + "nameLocation": "165:11:21", + "nodeType": "StructDefinition", + "scope": 4608, + "src": "158:250:21", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "03101bfd", + "id": 4425, + "mutability": "mutable", + "name": "vestDetails", + "nameLocation": "452:11:21", + "nodeType": "VariableDeclaration", + "scope": 4608, + "src": "413:50:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails)" + }, + "typeName": { + "id": 4424, + "keyType": { + "id": 4421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "413:31:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails)" + }, + "valueType": { + "id": 4423, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4422, + "name": "VestDetails", + "nameLocations": [ + "432:11:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4420, + "src": "432:11:21" + }, + "referencedDeclaration": 4420, + "src": "432:11:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage_ptr", + "typeString": "struct VestingNFT.VestDetails" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4426, + "nodeType": "StructuredDocumentation", + "src": "515:34:21", + "text": "@dev tracker of current NFT id" + }, + "id": 4428, + "mutability": "mutable", + "name": "_tokenIdTracker", + "nameLocation": "570:15:21", + "nodeType": "VariableDeclaration", + "scope": 4608, + "src": "554:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "554:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4440, + "nodeType": "Block", + "src": "769:2:21", + "statements": [] + }, + "documentation": { + "id": 4429, + "nodeType": "StructuredDocumentation", + "src": "592:97:21", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token." + }, + "id": 4441, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 4436, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4431, + "src": "755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4437, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "761:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4438, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 4435, + "name": "ERC721", + "nameLocations": [ + "748:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2046, + "src": "748:6:21" + }, + "nodeType": "ModifierInvocation", + "src": "748:20:21" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4431, + "mutability": "mutable", + "name": "name", + "nameLocation": "720:4:21", + "nodeType": "VariableDeclaration", + "scope": 4441, + "src": "706:18:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4430, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "706:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4433, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "740:6:21", + "nodeType": "VariableDeclaration", + "scope": 4441, + "src": "726:20:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4432, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "726:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "705:42:21" + }, + "returnParameters": { + "id": 4439, + "nodeType": "ParameterList", + "parameters": [], + "src": "769:0:21" + }, + "scope": 4608, + "src": "694:77:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4514, + "nodeType": "Block", + "src": "1319:557:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4455, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "1337:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1351:1:21", + "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": 4457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1343:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1343:7:21", + "typeDescriptions": {} + } + }, + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1343:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1337:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:24:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + }, + "value": "to cannot be address 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "typeString": "literal_string \"to cannot be address 0\"" + } + ], + "id": 4454, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1329:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1329:51:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4463, + "nodeType": "ExpressionStatement", + "src": "1329:51:21" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4465, + "name": "releaseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "1398:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 4466, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1417:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1423:9:21", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1417:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1398:34:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "72656c65617365206d75737420626520696e20667574757265", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1434:27:21", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "typeString": "literal_string \"release must be in future\"" + }, + "value": "release must be in future" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "typeString": "literal_string \"release must be in future\"" + } + ], + "id": 4464, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1390:72:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4471, + "nodeType": "ExpressionStatement", + "src": "1390:72:21" + }, + { + "assignments": [ + 4473 + ], + "declarations": [ + { + "constant": false, + "id": 4473, + "mutability": "mutable", + "name": "newTokenId", + "nameLocation": "1481:10:21", + "nodeType": "VariableDeclaration", + "scope": 4514, + "src": "1473:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1473:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4475, + "initialValue": { + "id": 4474, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1494:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1473:36:21" + }, + { + "expression": { + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4476, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "1520:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4478, + "indexExpression": { + "id": 4477, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1532:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1520:23:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4480, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4451, + "src": "1585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + { + "id": 4481, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4446, + "src": "1612:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "expression": { + "id": 4484, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1651:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1657:9:21", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1651:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1643:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 4482, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1643:7:21", + "typeDescriptions": {} + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1643:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "id": 4487, + "name": "releaseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "1690:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + ], + "id": 4479, + "name": "VestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4420, + "src": "1546:11:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_VestDetails_$4420_storage_ptr_$", + "typeString": "type(struct VestingNFT.VestDetails storage pointer)" + } + }, + "id": 4488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "1572:11:21", + "1604:6:21", + "1632:9:21", + "1681:7:21" + ], + "names": [ + "payoutToken", + "payout", + "startTime", + "endTime" + ], + "nodeType": "FunctionCall", + "src": "1546:171:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_memory_ptr", + "typeString": "struct VestingNFT.VestDetails memory" + } + }, + "src": "1520:197:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4490, + "nodeType": "ExpressionStatement", + "src": "1520:197:21" + }, + { + "expression": { + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1728:17:21", + "subExpression": { + "id": 4491, + "name": "_tokenIdTracker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4428, + "src": "1728:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4493, + "nodeType": "ExpressionStatement", + "src": "1728:17:21" + }, + { + "expression": { + "arguments": [ + { + "id": 4495, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "1761:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4496, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1765:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4494, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1720, + "src": "1755:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1755:21:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4498, + "nodeType": "ExpressionStatement", + "src": "1755:21:21" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4505, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1835:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1839:6:21", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1835:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 4509, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1855:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VestingNFT_$4608", + "typeString": "contract VestingNFT" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VestingNFT_$4608", + "typeString": "contract VestingNFT" + } + ], + "id": 4508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1847:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1847:7:21", + "typeDescriptions": {} + } + }, + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1847:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4511, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4446, + "src": "1862:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4501, + "name": "newTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4473, + "src": "1805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4500, + "name": "payoutToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "1793:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1793:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4499, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "1786:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$777_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1786:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1818:16:21", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 896, + "src": "1786:48:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$777_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$777_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1786:83:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4513, + "nodeType": "ExpressionStatement", + "src": "1786:83:21" + } + ] + }, + "documentation": { + "id": 4442, + "nodeType": "StructuredDocumentation", + "src": "777:400:21", + "text": " @notice Creates a new vesting NFT and mints it\n @dev Token amount should be approved to be transferred by this contract before executing create\n @param to The recipient of the NFT\n @param amount The total assets to be locked over time\n @param releaseTimestamp When the full amount of tokens get released\n @param token The ERC20 token to vest over time" + }, + "functionSelector": "746b5d61", + "id": 4515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "create", + "nameLocation": "1191:6:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4444, + "mutability": "mutable", + "name": "to", + "nameLocation": "1215:2:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1207:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4443, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1207:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4446, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1235:6:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1227:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "mutability": "mutable", + "name": "releaseTimestamp", + "nameLocation": "1259:16:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1251:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 4447, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "1251:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4451, + "mutability": "mutable", + "name": "token", + "nameLocation": "1292:5:21", + "nodeType": "VariableDeclaration", + "scope": 4515, + "src": "1285:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 4450, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4449, + "name": "IERC20", + "nameLocations": [ + "1285:6:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 777, + "src": "1285:6:21" + }, + "referencedDeclaration": 777, + "src": "1285:6:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "1197:106:21" + }, + "returnParameters": { + "id": 4453, + "nodeType": "ParameterList", + "parameters": [], + "src": "1319:0:21" + }, + "scope": 4608, + "src": "1182:694:21", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3832 + ], + "body": { + "id": 4543, + "nodeType": "Block", + "src": "2109:118:21", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4530, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "2123:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [ + { + "id": 4532, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2145:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4531, + "name": "_endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4607 + ], + "referencedDeclaration": 4607, + "src": "2136:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2136:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2123:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4540, + "nodeType": "IfStatement", + "src": "2119:84:21", + "trueBody": { + "id": 4539, + "nodeType": "Block", + "src": "2155:48:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4536, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2184:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4535, + "name": "_payout", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4577 + ], + "referencedDeclaration": 4577, + "src": "2176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2176:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4529, + "id": 4538, + "nodeType": "Return", + "src": "2169:23:21" + } + ] + } + }, + { + "expression": { + "hexValue": "30", + "id": 4541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2219:1:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 4529, + "id": 4542, + "nodeType": "Return", + "src": "2212:8:21" + } + ] + }, + "documentation": { + "id": 4516, + "nodeType": "StructuredDocumentation", + "src": "1882:39:21", + "text": " @dev See {IERC5725}." + }, + "functionSelector": "d744515f", + "id": 4544, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 4525, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4518, + "src": "2063:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4526, + "kind": "modifierInvocation", + "modifierName": { + "id": 4524, + "name": "validToken", + "nameLocations": [ + "2052:10:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3744, + "src": "2052:10:21" + }, + "nodeType": "ModifierInvocation", + "src": "2052:19:21" + } + ], + "name": "vestedPayoutAtTime", + "nameLocation": "1935:18:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4523, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 4522, + "name": "ERC5725", + "nameLocations": [ + "2035:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3993, + "src": "2035:7:21" + } + ], + "src": "2026:17:21" + }, + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4518, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1962:7:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "1954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4520, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1979:9:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "1971:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1971:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1953:36:21" + }, + "returnParameters": { + "id": 4529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4528, + "mutability": "mutable", + "name": "payout", + "nameLocation": "2097:6:21", + "nodeType": "VariableDeclaration", + "scope": 4544, + "src": "2089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2088:16:21" + }, + "scope": 4608, + "src": "1926:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3968 + ], + "body": { + "id": 4561, + "nodeType": "Block", + "src": "2356:65:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 4555, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2381:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4557, + "indexExpression": { + "id": 4556, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4547, + "src": "2393:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2381:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4558, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2402:11:21", + "memberName": "payoutToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 4410, + "src": "2381:32:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$777", + "typeString": "contract IERC20" + } + ], + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2373:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2373:7:21", + "typeDescriptions": {} + } + }, + "id": 4559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2373:41:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4552, + "id": 4560, + "nodeType": "Return", + "src": "2366:48:21" + } + ] + }, + "documentation": { + "id": 4545, + "nodeType": "StructuredDocumentation", + "src": "2233:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4562, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payoutToken", + "nameLocation": "2285:12:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4549, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2329:8:21" + }, + "parameters": { + "id": 4548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4547, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2306:7:21", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "2298:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2298:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2297:17:21" + }, + "returnParameters": { + "id": 4552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4551, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "2347:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2347:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2346:9:21" + }, + "scope": 4608, + "src": "2276:145:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3976 + ], + "body": { + "id": 4576, + "nodeType": "Block", + "src": "2545:51:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4571, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2562:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4573, + "indexExpression": { + "id": 4572, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4565, + "src": "2574:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2562:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2583:6:21", + "memberName": "payout", + "nodeType": "MemberAccess", + "referencedDeclaration": 4413, + "src": "2562:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4570, + "id": 4575, + "nodeType": "Return", + "src": "2555:34:21" + } + ] + }, + "documentation": { + "id": 4563, + "nodeType": "StructuredDocumentation", + "src": "2427:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_payout", + "nameLocation": "2479:7:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4567, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2518:8:21" + }, + "parameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2495:7:21", + "nodeType": "VariableDeclaration", + "scope": 4577, + "src": "2487:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2486:17:21" + }, + "returnParameters": { + "id": 4570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4569, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4577, + "src": "2536:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2536:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2535:9:21" + }, + "scope": 4608, + "src": "2470:126:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3984 + ], + "body": { + "id": 4591, + "nodeType": "Block", + "src": "2723:54:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4586, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2740:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4588, + "indexExpression": { + "id": 4587, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4580, + "src": "2752:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2740:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4589, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2761:9:21", + "memberName": "startTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4416, + "src": "2740:30:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4585, + "id": 4590, + "nodeType": "Return", + "src": "2733:37:21" + } + ] + }, + "documentation": { + "id": 4578, + "nodeType": "StructuredDocumentation", + "src": "2602:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_startTime", + "nameLocation": "2654:10:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4582, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2696:8:21" + }, + "parameters": { + "id": 4581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4580, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2673:7:21", + "nodeType": "VariableDeclaration", + "scope": 4592, + "src": "2665:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2665:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2664:17:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4592, + "src": "2714:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2714:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2713:9:21" + }, + "scope": 4608, + "src": "2645:132:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3992 + ], + "body": { + "id": 4606, + "nodeType": "Block", + "src": "2902:52:21", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 4601, + "name": "vestDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "2919:11:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_VestDetails_$4420_storage_$", + "typeString": "mapping(uint256 => struct VestingNFT.VestDetails storage ref)" + } + }, + "id": 4603, + "indexExpression": { + "id": 4602, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4595, + "src": "2931:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2919:20:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_VestDetails_$4420_storage", + "typeString": "struct VestingNFT.VestDetails storage ref" + } + }, + "id": 4604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2940:7:21", + "memberName": "endTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 4419, + "src": "2919:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 4600, + "id": 4605, + "nodeType": "Return", + "src": "2912:35:21" + } + ] + }, + "documentation": { + "id": 4593, + "nodeType": "StructuredDocumentation", + "src": "2783:38:21", + "text": " @dev See {ERC5725}." + }, + "id": 4607, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_endTime", + "nameLocation": "2835:8:21", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4597, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2875:8:21" + }, + "parameters": { + "id": 4596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2852:7:21", + "nodeType": "VariableDeclaration", + "scope": 4607, + "src": "2844:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2844:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2843:17:21" + }, + "returnParameters": { + "id": 4600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4599, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4607, + "src": "2893:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2893:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2892:9:21" + }, + "scope": 4608, + "src": "2826:128:21", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4609, + "src": "88:2868:21", + "usedErrors": [] + } + ], + "src": "36:2921:21" + }, + "id": 21 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_157": { + "entryPoint": null, + "id": 157, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 376, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 502, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 247, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 99, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 635, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1067, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1028, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 902, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1222, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 332, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 693, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 193, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1160, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 646, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 146, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 119, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 124, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 114, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 109, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 129, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1147, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1000, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 796, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 952, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 995, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620017ec380380620017ec8339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61122f80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x17EC CODESIZE SUB DUP1 PUSH3 0x17EC DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1F6 JUMP JUMPDEST DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x48 SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x5A SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP POP POP PUSH3 0x5AD 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 PUSH3 0xCC DUP3 PUSH3 0x81 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xEE JUMPI PUSH3 0xED PUSH3 0x92 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x103 PUSH3 0x63 JUMP JUMPDEST SWAP1 POP PUSH3 0x111 DUP3 DUP3 PUSH3 0xC1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x134 JUMPI PUSH3 0x133 PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x13F DUP3 PUSH3 0x81 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x16C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x14F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18F PUSH3 0x189 DUP5 PUSH3 0x116 JUMP JUMPDEST PUSH3 0xF7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1AE JUMPI PUSH3 0x1AD PUSH3 0x7C JUMP JUMPDEST JUMPDEST PUSH3 0x1BB DUP5 DUP3 DUP6 PUSH3 0x14C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DB JUMPI PUSH3 0x1DA PUSH3 0x77 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1ED DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x178 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x210 JUMPI PUSH3 0x20F PUSH3 0x6D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x231 JUMPI PUSH3 0x230 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x23F DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x263 JUMPI PUSH3 0x262 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x271 DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2CE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E4 JUMPI PUSH3 0x2E3 PUSH3 0x286 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 PUSH3 0x34E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x30F JUMP JUMPDEST PUSH3 0x35A DUP7 DUP4 PUSH3 0x30F 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 PUSH3 0x3A7 PUSH3 0x3A1 PUSH3 0x39B DUP5 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x37C JUMP JUMPDEST PUSH3 0x372 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C3 DUP4 PUSH3 0x386 JUMP JUMPDEST PUSH3 0x3DB PUSH3 0x3D2 DUP3 PUSH3 0x3AE JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x31C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F2 PUSH3 0x3E3 JUMP JUMPDEST PUSH3 0x3FF DUP2 DUP5 DUP5 PUSH3 0x3B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x427 JUMPI PUSH3 0x41B PUSH1 0x0 DUP3 PUSH3 0x3E8 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x476 JUMPI PUSH3 0x440 DUP2 PUSH3 0x2EA JUMP JUMPDEST PUSH3 0x44B DUP5 PUSH3 0x2FF JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x473 PUSH3 0x46A DUP6 PUSH3 0x2FF JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x404 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 PUSH3 0x49B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4B6 DUP4 DUP4 PUSH3 0x488 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D1 DUP3 PUSH3 0x27B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4ED JUMPI PUSH3 0x4EC PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x4F9 DUP3 SLOAD PUSH3 0x2B5 JUMP JUMPDEST PUSH3 0x506 DUP3 DUP3 DUP6 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x53E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x529 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x535 DUP6 DUP3 PUSH3 0x4A8 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x54E DUP7 PUSH3 0x2EA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x578 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 PUSH3 0x551 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x598 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x594 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x488 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 PUSH2 0x122F DUP1 PUSH3 0x5BD 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 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xD8D 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 0x2B1 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE 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 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xDED JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xD8D 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 0x427 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 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 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x616 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP1 PUSH2 0xF25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67C SWAP1 PUSH2 0xFB7 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F6 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DF SWAP1 PUSH2 0x1023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x862 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D1 SWAP1 PUSH2 0x1147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E5 DUP4 DUP4 DUP4 PUSH2 0xA72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA59 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA6C DUP5 DUP5 DUP5 PUSH2 0xA77 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA9B 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 0xADE DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0xAE8 DUP2 DUP6 PUSH2 0xA87 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xB01 DUP2 PUSH2 0xAC2 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 0xB26 DUP2 DUP5 PUSH2 0xAD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP3 PUSH2 0xB33 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB53 JUMP JUMPDEST DUP2 EQ PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB8B DUP2 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP2 EQ PUSH2 0xBAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBC1 DUP2 PUSH2 0xB9B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBDE JUMPI PUSH2 0xBDD PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBEC DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBFD DUP6 DUP3 DUP7 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xC07 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC61 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC80 JUMPI PUSH2 0xC7F PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8E DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC9F DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCB0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCEB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD15 DUP5 DUP3 DUP6 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD43 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD54 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xDA5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDB8 JUMPI PUSH2 0xDB7 PUSH2 0xD5E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDF8 DUP3 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP PUSH2 0xE03 DUP4 PUSH2 0xB91 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1A PUSH2 0xDBE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP3 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 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 0xEAC DUP2 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0F PUSH1 0x24 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xF1A DUP3 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 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 0xF3E DUP2 PUSH2 0xF02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA1 PUSH1 0x22 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xFAC DUP3 PUSH2 0xF45 JUMP JUMPDEST PUSH1 0x40 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 0xFD0 DUP2 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100D PUSH1 0x1D DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x1018 DUP3 PUSH2 0xFD7 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 0x103C DUP2 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x109F PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x10AA DUP3 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 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 0x10CE DUP2 PUSH2 0x1092 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1131 PUSH1 0x23 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x113C DUP3 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x40 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 0x1160 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11C3 PUSH1 0x26 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x11CE DUP3 PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x40 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 0x11F2 DUP2 PUSH2 0x11B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE DUP9 0xB2 PUSH20 0x199F085E1921EC1A1FA55ABDEE2E425960BDA675 0xA5 0x1F 0xAC DUP6 0xAC 0xD9 SWAP8 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1401:11610:1:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2050:5;2042;:13;;;;;;:::i;:::-;;2075:7;2065;:17;;;;;;:::i;:::-;;1976:113;;1401:11610;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;1401:11610:1:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_698": { + "entryPoint": 2679, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_633": { + "entryPoint": 1447, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 2674, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 1439, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_676": { + "entryPoint": 1904, + "id": 676, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_459": { + "entryPoint": 2044, + "id": 459, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_254": { + "entryPoint": 1304, + "id": 254, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_279": { + "entryPoint": 776, + "id": 279, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_211": { + "entryPoint": 932, + "id": 211, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_187": { + "entryPoint": 868, + "id": 187, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_382": { + "entryPoint": 1150, + "id": 382, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_341": { + "entryPoint": 877, + "id": 341, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_167": { + "entryPoint": 630, + "id": 167, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_177": { + "entryPoint": 1004, + "id": 177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_197": { + "entryPoint": 811, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_312": { + "entryPoint": 821, + "id": 312, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_236": { + "entryPoint": 1269, + "id": 236, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 2940, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2994, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3313, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3358, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3015, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3091, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2771, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4388, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3988, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4096, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4534, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4242, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3842, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3696, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3133, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3271, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3106, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2828, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4423, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4023, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4131, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4569, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4277, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3877, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3148, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2684, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3079, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2867, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2961, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3258, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2712, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3518, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3422, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2862, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2754, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4309, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 3909, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 4055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4455, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4163, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 3763, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2917, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2971, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:13699:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:22", + "type": "" + } + ], + "src": "7:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:22", + "type": "" + } + ], + "src": "112:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:22", + "statements": [] + }, + "src": "378:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:22", + "type": "" + } + ], + "src": "287:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:22", + "type": "" + } + ], + "src": "539:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:22", + "type": "" + } + ], + "src": "647:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:22", + "type": "" + } + ], + "src": "1030:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:22", + "type": "" + } + ], + "src": "1349:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:22", + "type": "" + } + ], + "src": "1676:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:22", + "type": "" + } + ], + "src": "1808:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:22" + }, + "nodeType": "YulIf", + "src": "1963:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:22", + "type": "" + } + ], + "src": "1910:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:22", + "type": "" + } + ], + "src": "2038:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:22", + "type": "" + } + ], + "src": "2183:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:22" + }, + "nodeType": "YulIf", + "src": "2319:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:22", + "type": "" + } + ], + "src": "2266:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:22", + "type": "" + } + ], + "src": "2394:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:22" + }, + "nodeType": "YulIf", + "src": "2632:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:22", + "type": "" + } + ], + "src": "2539:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:22", + "type": "" + } + ], + "src": "3019:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:22", + "type": "" + } + ], + "src": "3115:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:22", + "type": "" + } + ], + "src": "3230:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:22", + "type": "" + } + ], + "src": "3446:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:22", + "type": "" + } + ], + "src": "3570:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:22" + }, + "nodeType": "YulIf", + "src": "3908:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:22", + "type": "" + } + ], + "src": "3798:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:22", + "type": "" + } + ], + "src": "4423:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:22" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:22", + "type": "" + } + ], + "src": "4515:112:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:22" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:22", + "type": "" + } + ], + "src": "4633:214:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:22" + }, + "nodeType": "YulIf", + "src": "4929:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:22", + "type": "" + } + ], + "src": "4853:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:22" + }, + "nodeType": "YulIf", + "src": "5281:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:22", + "type": "" + } + ], + "src": "5188:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:22" + }, + "nodeType": "YulIf", + "src": "5993:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:22" + }, + "nodeType": "YulIf", + "src": "6084:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:22", + "type": "" + } + ], + "src": "5854:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6208:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6225:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6228:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6218:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6218:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6322:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6325:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6315:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6315:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6315:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6346:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6349:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6339:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6339:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6339:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6180:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6410:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6420:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6443:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6425:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6425:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6420:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6454:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6477:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6459:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6459:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6454:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6488:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6499:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6502:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6495:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6495:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6488:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6528:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "6530:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6530:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6530:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6520:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6523:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6517:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6517:10:22" + }, + "nodeType": "YulIf", + "src": "6514:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "6397:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "6400:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "6406:3:22", + "type": "" + } + ], + "src": "6366:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6669:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6691:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6699:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6687:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6687:14:22" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6703:34:22", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6680:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6680:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6680:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6759:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6767:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6755:15:22" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6772:7:22", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6748:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6748:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6748:32:22" + } + ] + }, + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6661:6:22", + "type": "" + } + ], + "src": "6563:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6939:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6949:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7015:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7020:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6956:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "6956:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6949:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7121:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulIdentifier", + "src": "7032:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "7032:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7032:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "7134:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7145:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7150:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7141:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7141:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7134:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6927:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6935:3:22", + "type": "" + } + ], + "src": "6793:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7336:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7346:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7358:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7369:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7354:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7354:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7346:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7393:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7404:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7389:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7389:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7412:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7418:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7408:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7408:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7382:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7382:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7382:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "7438:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7572:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7446:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "7446:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7438:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7316:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7331:4:22", + "type": "" + } + ], + "src": "7165:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7696:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7718:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7726:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7714:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7714:14:22" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7730:34:22", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7707:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7707:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7707:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7786:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7794:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7782:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7782:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7799:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7775:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7775:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7775:31:22" + } + ] + }, + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7688:6:22", + "type": "" + } + ], + "src": "7590:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7965:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7975:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8041:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7982:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "7982:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7975:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8147:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulIdentifier", + "src": "8058:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "8058:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8058:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "8160:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8171:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8176:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8167:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8167:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8160:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7953:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7961:3:22", + "type": "" + } + ], + "src": "7819:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8362:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8372:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8384:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8395:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8380:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8380:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8372:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8415:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8438:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8444:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8434:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8408:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8408:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8408:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "8464:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8598:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8472:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "8472:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8464:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8342:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8357:4:22", + "type": "" + } + ], + "src": "8191:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8722:115:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8744:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8752:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8740:14:22" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8756:34:22", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8733:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8733:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8733:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8812:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8820:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8808:15:22" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8825:4:22", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8801:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8801:29:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8801:29:22" + } + ] + }, + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8714:6:22", + "type": "" + } + ], + "src": "8616:221:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8989:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8999:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9065:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9070:2:22", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9006:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9006:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8999:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9171:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulIdentifier", + "src": "9082:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "9082:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9082:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "9184:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9195:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9200:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9191:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9191:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9184:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8977:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8985:3:22", + "type": "" + } + ], + "src": "8843:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9386:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9396:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9408:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9419:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9404:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9404:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9396:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9443:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9454:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9439:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9439:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9462:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9468:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9458:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9458:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9432:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9432:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9432:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "9488:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9622:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9496:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "9496:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9488:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9366:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9381:4:22", + "type": "" + } + ], + "src": "9215:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9746:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9768:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9776:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9764:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9764:14:22" + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9780:31:22", + "type": "", + "value": "ERC20: insufficient allowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9757:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9757:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9757:55:22" + } + ] + }, + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9738:6:22", + "type": "" + } + ], + "src": "9640:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9971:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9981:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10047:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10052:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9988:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9988:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9981:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10153:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulIdentifier", + "src": "10064:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10064:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10064:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10166:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10177:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10182:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10173:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10173:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10166:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9959:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9967:3:22", + "type": "" + } + ], + "src": "9825:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10368:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10378:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10401:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10386:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10378:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10425:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10436:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10421:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10421:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10444:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10450:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10440:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10440:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10414:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10414:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10414:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10470:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10604:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10478:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10478:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10470:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10348:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10363:4:22", + "type": "" + } + ], + "src": "10197:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10728:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10750:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10758:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10746:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10746:14:22" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10762:34:22", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10739:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10739:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10739:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10818:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10826:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10814:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10814:15:22" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10831:7:22", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10807:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10807:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10807:32:22" + } + ] + }, + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10720:6:22", + "type": "" + } + ], + "src": "10622:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10998:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11008:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11074:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11079:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11015:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11015:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11008:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11180:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulIdentifier", + "src": "11091:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11091:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11091:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11193:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11204:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11209:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11200:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11200:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11193:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10986:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10994:3:22", + "type": "" + } + ], + "src": "10852:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11395:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11405:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11417:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11428:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11413:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11405:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11452:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11463:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11448:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11448:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11471:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11477:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11467:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11467:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11441:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11441:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11441:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11497:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11631:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11505:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11505:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11497:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11375:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11390:4:22", + "type": "" + } + ], + "src": "11224:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11755:116:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11777:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11785:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11773:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11773:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11789:34:22", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11766:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11766:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11766:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11845:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11853:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11841:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11841:15:22" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11858:5:22", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11834:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11834:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11834:30:22" + } + ] + }, + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11747:6:22", + "type": "" + } + ], + "src": "11649:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12023:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12033:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12099:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12104:2:22", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12040:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12040:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12033:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12205:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulIdentifier", + "src": "12116:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12116:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12116:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12218:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12229:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12234:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12225:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12225:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12218:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12011:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12019:3:22", + "type": "" + } + ], + "src": "11877:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12420:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12430:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12442:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12453:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12438:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12430:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12477:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12488:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12473:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12473:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12496:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12502:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12492:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12492:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12466:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12466:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12466:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "12522:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12656:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12530:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "12530:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12522:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12400:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12415:4:22", + "type": "" + } + ], + "src": "12249:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12780:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12802:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12798:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12798:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12814:34:22", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12791:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12791:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12791:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12870:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12878:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12866:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12866:15:22" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12883:8:22", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12859:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12859:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12859:33:22" + } + ] + }, + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12772:6:22", + "type": "" + } + ], + "src": "12674:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13051:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13061:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13127:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13132:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13068:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13068:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13061:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13233:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulIdentifier", + "src": "13144:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13144:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13144:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13246:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13257:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13262:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13253:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13253:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13246:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13039:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13047:3:22", + "type": "" + } + ], + "src": "12905:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13448:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13458:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13470:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13481:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13466:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13466:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13458:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13505:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13516:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13501:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13524:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13530:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13520:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13520:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13494:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13494:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13494:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13550:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13684:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13558:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13558:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13550:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13428:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13443:4:22", + "type": "" + } + ], + "src": "13277:419:22" + } + ] + }, + "contents": "{\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 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 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 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 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_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 abi_decode_tuple_t_addresst_addresst_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_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 function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(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_address(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 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 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 store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__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_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__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_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__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_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__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_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__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_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__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_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__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_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b0c565b60405180910390f35b6100e660048036038101906100e19190610bc7565b610308565b6040516100f39190610c22565b60405180910390f35b61010461032b565b6040516101119190610c4c565b60405180910390f35b610134600480360381019061012f9190610c67565b610335565b6040516101419190610c22565b60405180910390f35b610152610364565b60405161015f9190610cd6565b60405180910390f35b610182600480360381019061017d9190610bc7565b61036d565b60405161018f9190610c22565b60405180910390f35b6101b260048036038101906101ad9190610cf1565b6103a4565b6040516101bf9190610c4c565b60405180910390f35b6101d06103ec565b6040516101dd9190610b0c565b60405180910390f35b61020060048036038101906101fb9190610bc7565b61047e565b60405161020d9190610c22565b60405180910390f35b610230600480360381019061022b9190610bc7565b6104f5565b60405161023d9190610c22565b60405180910390f35b610260600480360381019061025b9190610d1e565b610518565b60405161026d9190610c4c565b60405180910390f35b60606003805461028590610d8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d8d565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610ded565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d8d565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e93565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fb7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c4c565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611023565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611147565b60405180910390fd5b6108e5838383610a72565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111d9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a599190610c4c565b60405180910390a3610a6c848484610a77565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ab6578082015181840152602081019050610a9b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ade82610a7c565b610ae88185610a87565b9350610af8818560208601610a98565b610b0181610ac2565b840191505092915050565b60006020820190508181036000830152610b268184610ad3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b5e82610b33565b9050919050565b610b6e81610b53565b8114610b7957600080fd5b50565b600081359050610b8b81610b65565b92915050565b6000819050919050565b610ba481610b91565b8114610baf57600080fd5b50565b600081359050610bc181610b9b565b92915050565b60008060408385031215610bde57610bdd610b2e565b5b6000610bec85828601610b7c565b9250506020610bfd85828601610bb2565b9150509250929050565b60008115159050919050565b610c1c81610c07565b82525050565b6000602082019050610c376000830184610c13565b92915050565b610c4681610b91565b82525050565b6000602082019050610c616000830184610c3d565b92915050565b600080600060608486031215610c8057610c7f610b2e565b5b6000610c8e86828701610b7c565b9350506020610c9f86828701610b7c565b9250506040610cb086828701610bb2565b9150509250925092565b600060ff82169050919050565b610cd081610cba565b82525050565b6000602082019050610ceb6000830184610cc7565b92915050565b600060208284031215610d0757610d06610b2e565b5b6000610d1584828501610b7c565b91505092915050565b60008060408385031215610d3557610d34610b2e565b5b6000610d4385828601610b7c565b9250506020610d5485828601610b7c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610da557607f821691505b602082108103610db857610db7610d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df882610b91565b9150610e0383610b91565b9250828201905080821115610e1b57610e1a610dbe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e7d602583610a87565b9150610e8882610e21565b604082019050919050565b60006020820190508181036000830152610eac81610e70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f0f602483610a87565b9150610f1a82610eb3565b604082019050919050565b60006020820190508181036000830152610f3e81610f02565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fa1602283610a87565b9150610fac82610f45565b604082019050919050565b60006020820190508181036000830152610fd081610f94565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061100d601d83610a87565b915061101882610fd7565b602082019050919050565b6000602082019050818103600083015261103c81611000565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061109f602583610a87565b91506110aa82611043565b604082019050919050565b600060208201905081810360008301526110ce81611092565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611131602383610a87565b915061113c826110d5565b604082019050919050565b6000602082019050818103600083015261116081611124565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111c3602683610a87565b91506111ce82611167565b604082019050919050565b600060208201905081810360008301526111f2816111b6565b905091905056fea26469706673582212204188b273199f085e1921ec1a1fa55abdee2e425960bda675a51fac85acd9972064736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xC67 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCF1 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xD8D 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 0x2B1 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE 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 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x770 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xDED JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xD8D 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 0x427 SWAP1 PUSH2 0xD8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 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 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xE93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x616 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60D SWAP1 PUSH2 0xF25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67C SWAP1 PUSH2 0xFB7 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x763 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F6 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DF SWAP1 PUSH2 0x1023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x862 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D1 SWAP1 PUSH2 0x1147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E5 DUP4 DUP4 DUP4 PUSH2 0xA72 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA59 SWAP2 SWAP1 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA6C DUP5 DUP5 DUP5 PUSH2 0xA77 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA9B 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 0xADE DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0xAE8 DUP2 DUP6 PUSH2 0xA87 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xB01 DUP2 PUSH2 0xAC2 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 0xB26 DUP2 DUP5 PUSH2 0xAD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E DUP3 PUSH2 0xB33 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB53 JUMP JUMPDEST DUP2 EQ PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB8B DUP2 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP2 EQ PUSH2 0xBAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBC1 DUP2 PUSH2 0xB9B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBDE JUMPI PUSH2 0xBDD PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xBEC DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBFD DUP6 DUP3 DUP7 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xC07 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC37 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC46 DUP2 PUSH2 0xB91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC61 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC80 JUMPI PUSH2 0xC7F PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8E DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC9F DUP7 DUP3 DUP8 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xCB0 DUP7 DUP3 DUP8 ADD PUSH2 0xBB2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD0 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCEB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCC7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD07 JUMPI PUSH2 0xD06 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD15 DUP5 DUP3 DUP6 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD35 JUMPI PUSH2 0xD34 PUSH2 0xB2E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD43 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD54 DUP6 DUP3 DUP7 ADD PUSH2 0xB7C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xDA5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xDB8 JUMPI PUSH2 0xDB7 PUSH2 0xD5E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDF8 DUP3 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP PUSH2 0xE03 DUP4 PUSH2 0xB91 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH2 0xE1A PUSH2 0xDBE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7D PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xE88 DUP3 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 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 0xEAC DUP2 PUSH2 0xE70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0F PUSH1 0x24 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xF1A DUP3 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 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 0xF3E DUP2 PUSH2 0xF02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA1 PUSH1 0x22 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0xFAC DUP3 PUSH2 0xF45 JUMP JUMPDEST PUSH1 0x40 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 0xFD0 DUP2 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100D PUSH1 0x1D DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x1018 DUP3 PUSH2 0xFD7 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 0x103C DUP2 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x109F PUSH1 0x25 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x10AA DUP3 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x40 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 0x10CE DUP2 PUSH2 0x1092 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1131 PUSH1 0x23 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x113C DUP3 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x40 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 0x1160 DUP2 PUSH2 0x1124 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11C3 PUSH1 0x26 DUP4 PUSH2 0xA87 JUMP JUMPDEST SWAP2 POP PUSH2 0x11CE DUP3 PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x40 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 0x11F2 DUP2 PUSH2 0x11B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE DUP9 0xB2 PUSH20 0x199F085E1921EC1A1FA55ABDEE2E425960BDA675 0xA5 0x1F 0xAC DUP6 0xAC 0xD9 SWAP8 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "1401:11610:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3242:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3091:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5871:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3974:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2154:98;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;4530:13;4546:12;:10;:12::i;:::-;4530:28;;4568:32;4577:5;4584:7;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;:::o;3242:106::-;3303:7;3329:12;;3322:19;;3242:106;:::o;5190:286::-;5317:4;5333:15;5351:12;:10;:12::i;:::-;5333:30;;5373:38;5389:4;5395:7;5404:6;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;5465:4;5458:11;;;5190:286;;;;;:::o;3091:91::-;3149:5;3173:2;3166:9;;3091:91;:::o;5871:234::-;5959:4;5975:13;5991:12;:10;:12::i;:::-;5975:28;;6013:64;6022:5;6029:7;6066:10;6038:25;6048:5;6055:7;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;:::-;6094:4;6087:11;;;5871:234;;;;:::o;3406:125::-;3480:7;3506:9;:18;3516:7;3506:18;;;;;;;;;;;;;;;;3499:25;;3406:125;;;:::o;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:102;:::o;6592:427::-;6685:4;6701:13;6717:12;:10;:12::i;:::-;6701:28;;6739:24;6766:25;6776:5;6783:7;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;:::-;7008:4;7001:11;;;;6592:427;;;;:::o;3727:189::-;3806:4;3822:13;3838:12;:10;:12::i;:::-;3822:28;;3860;3870:5;3877:2;3881:6;3860:9;:28::i;:::-;3905:4;3898:11;;;3727:189;;;;:::o;3974:149::-;4063:7;4089:11;:18;4101:5;4089:18;;;;;;;;;;;;;;;:27;4108:7;4089:27;;;;;;;;;;;;;;;;4082:34;;3974:149;;;;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;10504:370:1:-;10652:1;10635:19;;:5;:19;;;10627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:1;10713:21;;:7;:21;;;10705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:6;10784:11;:18;10796:5;10784:18;;;;;;;;;;;;;;;:27;10803:7;10784:27;;;;;;;;;;;;;;;:36;;;;10851:7;10835:32;;10844:5;10835:32;;;10860:6;10835:32;;;;;;:::i;:::-;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;11371:17;11351:16;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11347:243;11275:321;11155:441;;;:::o;7473:818::-;7615:1;7599:18;;:4;:18;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7691:1;7677:16;;:2;:16;;;7669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:38;7765:4;7771:2;7775:6;7744:20;:38::i;:::-;7793:19;7815:9;:15;7825:4;7815:15;;;;;;;;;;;;;;;;7793:37;;7863:6;7848:11;:21;;7840:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7978:6;7964:11;:20;7946:9;:15;7956:4;7946:15;;;;;;;;;;;;;;;:38;;;;8178:6;8161:9;:13;8171:2;8161:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8225:2;8210:26;;8219:4;8210:26;;;8229:6;8210:26;;;;;;:::i;:::-;;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;:::-;7581:710;7473:818;;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:99:22:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:191;6406:3;6425:20;6443:1;6425:20;:::i;:::-;6420:25;;6459:20;6477:1;6459:20;:::i;:::-;6454:25;;6502:1;6499;6495:9;6488:16;;6523:3;6520:1;6517:10;6514:36;;;6530:18;;:::i;:::-;6514:36;6366:191;;;;:::o;6563:224::-;6703:34;6699:1;6691:6;6687:14;6680:58;6772:7;6767:2;6759:6;6755:15;6748:32;6563:224;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6793:366;;;:::o;7165:419::-;7331:4;7369:2;7358:9;7354:18;7346:26;;7418:9;7412:4;7408:20;7404:1;7393:9;7389:17;7382:47;7446:131;7572:4;7446:131;:::i;:::-;7438:139;;7165:419;;;:::o;7590:223::-;7730:34;7726:1;7718:6;7714:14;7707:58;7799:6;7794:2;7786:6;7782:15;7775:31;7590:223;:::o;7819:366::-;7961:3;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7819:366;;;:::o;8191:419::-;8357:4;8395:2;8384:9;8380:18;8372:26;;8444:9;8438:4;8434:20;8430:1;8419:9;8415:17;8408:47;8472:131;8598:4;8472:131;:::i;:::-;8464:139;;8191:419;;;:::o;8616:221::-;8756:34;8752:1;8744:6;8740:14;8733:58;8825:4;8820:2;8812:6;8808:15;8801:29;8616:221;:::o;8843:366::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:419::-;9381:4;9419:2;9408:9;9404:18;9396:26;;9468:9;9462:4;9458:20;9454:1;9443:9;9439:17;9432:47;9496:131;9622:4;9496:131;:::i;:::-;9488:139;;9215:419;;;:::o;9640:179::-;9780:31;9776:1;9768:6;9764:14;9757:55;9640:179;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:419::-;10363:4;10401:2;10390:9;10386:18;10378:26;;10450:9;10444:4;10440:20;10436:1;10425:9;10421:17;10414:47;10478:131;10604:4;10478:131;:::i;:::-;10470:139;;10197:419;;;:::o;10622:224::-;10762:34;10758:1;10750:6;10746:14;10739:58;10831:7;10826:2;10818:6;10814:15;10807:32;10622:224;:::o;10852:366::-;10994:3;11015:67;11079:2;11074:3;11015:67;:::i;:::-;11008:74;;11091:93;11180:3;11091:93;:::i;:::-;11209:2;11204:3;11200:12;11193:19;;10852:366;;;:::o;11224:419::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11477:9;11471:4;11467:20;11463:1;11452:9;11448:17;11441:47;11505:131;11631:4;11505:131;:::i;:::-;11497:139;;11224:419;;;:::o;11649:222::-;11789:34;11785:1;11777:6;11773:14;11766:58;11858:5;11853:2;11845:6;11841:15;11834:30;11649:222;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:225::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:8;12878:2;12870:6;12866:15;12859:33;12674:225;:::o;12905:366::-;13047:3;13068:67;13132:2;13127:3;13068:67;:::i;:::-;13061:74;;13144:93;13233:3;13144:93;:::i;:::-;13262:2;13257:3;13253:12;13246:19;;12905:366;;;:::o;13277:419::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13530:9;13524:4;13520:20;13516:1;13505:9;13501:17;13494:47;13558:131;13684:4;13558:131;:::i;:::-;13550:139;;13277:419;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "IERC20Permit": { + "abi": [ + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "nonces(address)": "7ecebe00", + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "SafeERC20": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206cf88f5263029175b3545a48eae10b12554cc86876c6445b3e4e83cc514c8f4264736f6c63430008110033", + "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 PUSH13 0xF88F5263029175B3545A48EAE1 SIGNEXTEND SLT SSTORE 0x4C 0xC8 PUSH9 0x76C6445B3E4E83CC51 0x4C DUP16 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "707:3748:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206cf88f5263029175b3545a48eae10b12554cc86876c6445b3e4e83cc514c8f4264736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH13 0xF88F5263029175B3545A48EAE1 SIGNEXTEND SLT SSTORE 0x4C 0xC8 PUSH9 0x76C6445B3E4E83CC51 0x4C DUP16 TIMESTAMP PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "707:3748:5:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ERC721": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 376, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 502, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 247, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 99, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 635, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1067, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1028, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 902, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1222, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 332, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 693, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 193, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1160, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 646, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 146, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 119, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 124, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 114, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 109, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 129, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1147, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1000, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 796, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 952, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 995, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620026dd380380620026dd8339818101604052810190620000379190620001f6565b8160009081620000489190620004c6565b5080600190816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61212080620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e991906114f4565b6102bc565b6040516100fb919061153c565b60405180910390f35b61010c61039e565b60405161011991906115e7565b60405180910390f35b61013c6004803603810190610137919061163f565b610430565b60405161014991906116ad565b60405180910390f35b61016c600480360381019061016791906116f4565b610476565b005b61018860048036038101906101839190611734565b61058d565b005b6101a4600480360381019061019f9190611734565b6105ed565b005b6101c060048036038101906101bb919061163f565b61060d565b6040516101cd91906116ad565b60405180910390f35b6101f060048036038101906101eb9190611787565b610693565b6040516101fd91906117c3565b60405180910390f35b61020e61074a565b60405161021b91906115e7565b60405180910390f35b61023e6004803603810190610239919061180a565b6107dc565b005b61025a6004803603810190610255919061197f565b6107f2565b005b6102766004803603810190610271919061163f565b610854565b60405161028391906115e7565b60405180910390f35b6102a660048036038101906102a19190611a02565b6108bc565b6040516102b3919061153c565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610950565b5b9050919050565b6060600080546103ad90611a71565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611a71565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b826109ba565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104818261060d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890611b14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610510610a05565b73ffffffffffffffffffffffffffffffffffffffff16148061053f575061053e81610539610a05565b6108bc565b5b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057590611ba6565b60405180910390fd5b6105888383610a0d565b505050565b61059e610598610a05565b82610ac6565b6105dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d490611c38565b60405180910390fd5b6105e8838383610b5b565b505050565b610608838383604051806020016040528060008152506107f2565b505050565b60008061061983610e54565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190611ca4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90611d36565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461075990611a71565b80601f016020809104026020016040519081016040528092919081815260200182805461078590611a71565b80156107d25780601f106107a7576101008083540402835291602001916107d2565b820191906000526020600020905b8154815290600101906020018083116107b557829003601f168201915b5050505050905090565b6107ee6107e7610a05565b8383610e91565b5050565b6108036107fd610a05565b83610ac6565b610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990611c38565b60405180910390fd5b61084e84848484610ffd565b50505050565b606061085f826109ba565b6000610869611059565b9050600081511161088957604051806020016040528060008152506108b4565b8061089384611070565b6040516020016108a4929190611d92565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6109c38161113e565b610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611ca4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610a808361060d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ad28361060d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610b145750610b1381856108bc565b5b80610b5257508373ffffffffffffffffffffffffffffffffffffffff16610b3a84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b7b8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890611e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611eba565b60405180910390fd5b610c4d838383600161117f565b8273ffffffffffffffffffffffffffffffffffffffff16610c6d8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba90611e28565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e4f8383836001611185565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611f26565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ff0919061153c565b60405180910390a3505050565b611008848484610b5b565b6110148484848461118b565b611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a90611fb8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606000600161107f84611312565b01905060008167ffffffffffffffff81111561109e5761109d611854565b5b6040519080825280601f01601f1916602001820160405280156110d05781602001600182028036833780820191505090505b509050600082602001820190505b600115611133578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161112757611126611fd8565b5b049450600085036110de575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661116083610e54565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006111ac8473ffffffffffffffffffffffffffffffffffffffff16611465565b15611305578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026111d5610a05565b8786866040518563ffffffff1660e01b81526004016111f7949392919061205c565b6020604051808303816000875af192505050801561123357506040513d601f19601f8201168201806040525081019061123091906120bd565b60015b6112b5573d8060008114611263576040519150601f19603f3d011682016040523d82523d6000602084013e611268565b606091505b5060008151036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490611fb8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061130a565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611370577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161136657611365611fd8565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106113ad576d04ee2d6d415b85acef810000000083816113a3576113a2611fd8565b5b0492506020810190505b662386f26fc1000083106113dc57662386f26fc1000083816113d2576113d1611fd8565b5b0492506010810190505b6305f5e1008310611405576305f5e10083816113fb576113fa611fd8565b5b0492506008810190505b612710831061142a5761271083816114205761141f611fd8565b5b0492506004810190505b6064831061144d576064838161144357611442611fd8565b5b0492506002810190505b600a831061145c576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d18161149c565b81146114dc57600080fd5b50565b6000813590506114ee816114c8565b92915050565b60006020828403121561150a57611509611492565b5b6000611518848285016114df565b91505092915050565b60008115159050919050565b61153681611521565b82525050565b6000602082019050611551600083018461152d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611591578082015181840152602081019050611576565b60008484015250505050565b6000601f19601f8301169050919050565b60006115b982611557565b6115c38185611562565b93506115d3818560208601611573565b6115dc8161159d565b840191505092915050565b6000602082019050818103600083015261160181846115ae565b905092915050565b6000819050919050565b61161c81611609565b811461162757600080fd5b50565b60008135905061163981611613565b92915050565b60006020828403121561165557611654611492565b5b60006116638482850161162a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116978261166c565b9050919050565b6116a78161168c565b82525050565b60006020820190506116c2600083018461169e565b92915050565b6116d18161168c565b81146116dc57600080fd5b50565b6000813590506116ee816116c8565b92915050565b6000806040838503121561170b5761170a611492565b5b6000611719858286016116df565b925050602061172a8582860161162a565b9150509250929050565b60008060006060848603121561174d5761174c611492565b5b600061175b868287016116df565b935050602061176c868287016116df565b925050604061177d8682870161162a565b9150509250925092565b60006020828403121561179d5761179c611492565b5b60006117ab848285016116df565b91505092915050565b6117bd81611609565b82525050565b60006020820190506117d860008301846117b4565b92915050565b6117e781611521565b81146117f257600080fd5b50565b600081359050611804816117de565b92915050565b6000806040838503121561182157611820611492565b5b600061182f858286016116df565b9250506020611840858286016117f5565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61188c8261159d565b810181811067ffffffffffffffff821117156118ab576118aa611854565b5b80604052505050565b60006118be611488565b90506118ca8282611883565b919050565b600067ffffffffffffffff8211156118ea576118e9611854565b5b6118f38261159d565b9050602081019050919050565b82818337600083830152505050565b600061192261191d846118cf565b6118b4565b90508281526020810184848401111561193e5761193d61184f565b5b611949848285611900565b509392505050565b600082601f8301126119665761196561184a565b5b813561197684826020860161190f565b91505092915050565b6000806000806080858703121561199957611998611492565b5b60006119a7878288016116df565b94505060206119b8878288016116df565b93505060406119c98782880161162a565b925050606085013567ffffffffffffffff8111156119ea576119e9611497565b5b6119f687828801611951565b91505092959194509250565b60008060408385031215611a1957611a18611492565b5b6000611a27858286016116df565b9250506020611a38858286016116df565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a8957607f821691505b602082108103611a9c57611a9b611a42565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611afe602183611562565b9150611b0982611aa2565b604082019050919050565b60006020820190508181036000830152611b2d81611af1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000611b90603d83611562565b9150611b9b82611b34565b604082019050919050565b60006020820190508181036000830152611bbf81611b83565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000611c22602d83611562565b9150611c2d82611bc6565b604082019050919050565b60006020820190508181036000830152611c5181611c15565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000611c8e601883611562565b9150611c9982611c58565b602082019050919050565b60006020820190508181036000830152611cbd81611c81565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611d20602983611562565b9150611d2b82611cc4565b604082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b600081905092915050565b6000611d6c82611557565b611d768185611d56565b9350611d86818560208601611573565b80840191505092915050565b6000611d9e8285611d61565b9150611daa8284611d61565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000611e12602583611562565b9150611e1d82611db6565b604082019050919050565b60006020820190508181036000830152611e4181611e05565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ea4602483611562565b9150611eaf82611e48565b604082019050919050565b60006020820190508181036000830152611ed381611e97565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000611f10601983611562565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000611fa2603283611562565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b600061202e82612007565b6120388185612012565b9350612048818560208601611573565b6120518161159d565b840191505092915050565b6000608082019050612071600083018761169e565b61207e602083018661169e565b61208b60408301856117b4565b818103606083015261209d8184612023565b905095945050505050565b6000815190506120b7816114c8565b92915050565b6000602082840312156120d3576120d2611492565b5b60006120e1848285016120a8565b9150509291505056fea26469706673582212201a0a48262c283ec50743f75054bf658159fcaed6c3d850d4d5c501d985cf0ded64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x26DD CODESIZE SUB DUP1 PUSH3 0x26DD DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1F6 JUMP JUMPDEST DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x48 SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5A SWAP2 SWAP1 PUSH3 0x4C6 JUMP JUMPDEST POP POP POP PUSH3 0x5AD 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 PUSH3 0xCC DUP3 PUSH3 0x81 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xEE JUMPI PUSH3 0xED PUSH3 0x92 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x103 PUSH3 0x63 JUMP JUMPDEST SWAP1 POP PUSH3 0x111 DUP3 DUP3 PUSH3 0xC1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x134 JUMPI PUSH3 0x133 PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x13F DUP3 PUSH3 0x81 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x16C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x14F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18F PUSH3 0x189 DUP5 PUSH3 0x116 JUMP JUMPDEST PUSH3 0xF7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1AE JUMPI PUSH3 0x1AD PUSH3 0x7C JUMP JUMPDEST JUMPDEST PUSH3 0x1BB DUP5 DUP3 DUP6 PUSH3 0x14C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DB JUMPI PUSH3 0x1DA PUSH3 0x77 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1ED DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x178 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x210 JUMPI PUSH3 0x20F PUSH3 0x6D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x231 JUMPI PUSH3 0x230 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x23F DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x263 JUMPI PUSH3 0x262 PUSH3 0x72 JUMP JUMPDEST JUMPDEST PUSH3 0x271 DUP6 DUP3 DUP7 ADD PUSH3 0x1C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2CE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E4 JUMPI PUSH3 0x2E3 PUSH3 0x286 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 PUSH3 0x34E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x30F JUMP JUMPDEST PUSH3 0x35A DUP7 DUP4 PUSH3 0x30F 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 PUSH3 0x3A7 PUSH3 0x3A1 PUSH3 0x39B DUP5 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x37C JUMP JUMPDEST PUSH3 0x372 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C3 DUP4 PUSH3 0x386 JUMP JUMPDEST PUSH3 0x3DB PUSH3 0x3D2 DUP3 PUSH3 0x3AE JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x31C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F2 PUSH3 0x3E3 JUMP JUMPDEST PUSH3 0x3FF DUP2 DUP5 DUP5 PUSH3 0x3B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x427 JUMPI PUSH3 0x41B PUSH1 0x0 DUP3 PUSH3 0x3E8 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x476 JUMPI PUSH3 0x440 DUP2 PUSH3 0x2EA JUMP JUMPDEST PUSH3 0x44B DUP5 PUSH3 0x2FF JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x473 PUSH3 0x46A DUP6 PUSH3 0x2FF JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x404 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 PUSH3 0x49B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4B6 DUP4 DUP4 PUSH3 0x488 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D1 DUP3 PUSH3 0x27B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4ED JUMPI PUSH3 0x4EC PUSH3 0x92 JUMP JUMPDEST JUMPDEST PUSH3 0x4F9 DUP3 SLOAD PUSH3 0x2B5 JUMP JUMPDEST PUSH3 0x506 DUP3 DUP3 DUP6 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x53E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x529 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x535 DUP6 DUP3 PUSH3 0x4A8 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x54E DUP7 PUSH3 0x2EA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x578 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 PUSH3 0x551 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x598 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x594 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x488 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 PUSH2 0x2120 DUP1 PUSH3 0x5BD 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x28C JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x18A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x14F4 JUMP JUMPDEST PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFB SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x137 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x1787 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x17C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20E PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x180A JUMP JUMPDEST PUSH2 0x7DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x276 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x1A02 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x387 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x397 JUMPI POP PUSH2 0x396 DUP3 PUSH2 0x950 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x1A71 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 0x3D9 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x481 DUP3 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E8 SWAP1 PUSH2 0x1B14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x510 PUSH2 0xA05 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x53F JUMPI POP PUSH2 0x53E DUP2 PUSH2 0x539 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST JUMPDEST PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x575 SWAP1 PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x588 DUP4 DUP4 PUSH2 0xA0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x59E PUSH2 0x598 PUSH2 0xA05 JUMP JUMPDEST DUP3 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x5DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D4 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E8 DUP4 DUP4 DUP4 PUSH2 0xB5B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x619 DUP4 PUSH2 0xE54 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x68A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FA SWAP1 PUSH2 0x1D36 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x759 SWAP1 PUSH2 0x1A71 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 0x785 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D2 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 0x7B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7EE PUSH2 0x7E7 PUSH2 0xA05 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x803 PUSH2 0x7FD PUSH2 0xA05 JUMP JUMPDEST DUP4 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x839 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x84E DUP5 DUP5 DUP5 DUP5 PUSH2 0xFFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x85F DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x869 PUSH2 0x1059 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x889 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8B4 JUMP JUMPDEST DUP1 PUSH2 0x893 DUP5 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C3 DUP2 PUSH2 0x113E JUMP JUMPDEST PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA80 DUP4 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAD2 DUP4 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB13 DUP2 DUP6 PUSH2 0x8BC JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0xB52 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB3A DUP5 PUSH2 0x430 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB7B DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBC8 SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC37 SWAP1 PUSH2 0x1EBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC4D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x117F JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC6D DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCBA SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1185 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF6 SWAP1 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0xFF0 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1008 DUP5 DUP5 DUP5 PUSH2 0xB5B JUMP JUMPDEST PUSH2 0x1014 DUP5 DUP5 DUP5 DUP5 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104A SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x107F DUP5 PUSH2 0x1312 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0x1854 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 0x10D0 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 0x1133 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x10DE JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1160 DUP4 PUSH2 0xE54 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0x1305 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x11D5 PUSH2 0xA05 JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1233 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 0x1230 SWAP2 SWAP1 PUSH2 0x20BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x12B5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1263 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 0x1268 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x12AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A4 SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1370 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1366 JUMPI PUSH2 0x1365 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x13AD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x13A3 JUMPI PUSH2 0x13A2 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x13DC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x13D2 JUMPI PUSH2 0x13D1 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1405 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x13FB JUMPI PUSH2 0x13FA PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x142A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x144D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x145C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D1 DUP2 PUSH2 0x149C JUMP JUMPDEST DUP2 EQ PUSH2 0x14DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14EE DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x150A JUMPI PUSH2 0x1509 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1518 DUP5 DUP3 DUP6 ADD PUSH2 0x14DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1536 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1551 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x152D JUMP JUMPDEST 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 0x1591 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1576 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 0x15B9 DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x15C3 DUP2 DUP6 PUSH2 0x1562 JUMP JUMPDEST SWAP4 POP PUSH2 0x15D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x15DC DUP2 PUSH2 0x159D 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 0x1601 DUP2 DUP5 PUSH2 0x15AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x161C DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP2 EQ PUSH2 0x1627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1639 DUP2 PUSH2 0x1613 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1654 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1663 DUP5 DUP3 DUP6 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1697 DUP3 PUSH2 0x166C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A7 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x169E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D1 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16EE DUP2 PUSH2 0x16C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170B JUMPI PUSH2 0x170A PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1719 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x172A DUP6 DUP3 DUP7 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x174D JUMPI PUSH2 0x174C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x175B DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x176C DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x177D DUP7 DUP3 DUP8 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17AB DUP5 DUP3 DUP6 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17BD DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17E7 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP2 EQ PUSH2 0x17F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1804 DUP2 PUSH2 0x17DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1821 JUMPI PUSH2 0x1820 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x182F DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1840 DUP6 DUP3 DUP7 ADD PUSH2 0x17F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x188C DUP3 PUSH2 0x159D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x18AB JUMPI PUSH2 0x18AA PUSH2 0x1854 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BE PUSH2 0x1488 JUMP JUMPDEST SWAP1 POP PUSH2 0x18CA DUP3 DUP3 PUSH2 0x1883 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18EA JUMPI PUSH2 0x18E9 PUSH2 0x1854 JUMP JUMPDEST JUMPDEST PUSH2 0x18F3 DUP3 PUSH2 0x159D 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 0x1922 PUSH2 0x191D DUP5 PUSH2 0x18CF JUMP JUMPDEST PUSH2 0x18B4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x184F JUMP JUMPDEST JUMPDEST PUSH2 0x1949 DUP5 DUP3 DUP6 PUSH2 0x1900 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1966 JUMPI PUSH2 0x1965 PUSH2 0x184A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1976 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x190F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1999 JUMPI PUSH2 0x1998 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A7 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x19B8 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x19C9 DUP8 DUP3 DUP9 ADD PUSH2 0x162A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EA JUMPI PUSH2 0x19E9 PUSH2 0x1497 JUMP JUMPDEST JUMPDEST PUSH2 0x19F6 DUP8 DUP3 DUP9 ADD PUSH2 0x1951 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A19 JUMPI PUSH2 0x1A18 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A27 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A38 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x1A89 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9C JUMPI PUSH2 0x1A9B PUSH2 0x1A42 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AFE PUSH1 0x21 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B09 DUP3 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 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 0x1B2D DUP2 PUSH2 0x1AF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B90 PUSH1 0x3D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B9B DUP3 PUSH2 0x1B34 JUMP JUMPDEST PUSH1 0x40 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 0x1BBF DUP2 PUSH2 0x1B83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C22 PUSH1 0x2D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2D DUP3 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x40 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 0x1C51 DUP2 PUSH2 0x1C15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8E PUSH1 0x18 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C99 DUP3 PUSH2 0x1C58 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 0x1CBD DUP2 PUSH2 0x1C81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D20 PUSH1 0x29 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D2B DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH1 0x40 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 0x1D4F DUP2 PUSH2 0x1D13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6C DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x1D76 DUP2 DUP6 PUSH2 0x1D56 JUMP JUMPDEST SWAP4 POP PUSH2 0x1D86 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9E DUP3 DUP6 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DAA DUP3 DUP5 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E12 PUSH1 0x25 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E1D DUP3 PUSH2 0x1DB6 JUMP JUMPDEST PUSH1 0x40 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 0x1E41 DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA4 PUSH1 0x24 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EAF DUP3 PUSH2 0x1E48 JUMP JUMPDEST PUSH1 0x40 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 0x1ED3 DUP2 PUSH2 0x1E97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F10 PUSH1 0x19 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F1B DUP3 PUSH2 0x1EDA 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 0x1F3F DUP2 PUSH2 0x1F03 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA2 PUSH1 0x32 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FAD DUP3 PUSH2 0x1F46 JUMP JUMPDEST PUSH1 0x40 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 0x1FD1 DUP2 PUSH2 0x1F95 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x202E DUP3 PUSH2 0x2007 JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x2012 JUMP JUMPDEST SWAP4 POP PUSH2 0x2048 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x2051 DUP2 PUSH2 0x159D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2071 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x207E PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x208B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x17B4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x209D DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20B7 DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D3 JUMPI PUSH2 0x20D2 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E1 DUP5 DUP3 DUP6 ADD PUSH2 0x20A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE EXP BASEFEE 0x26 0x2C 0x28 RETURNDATACOPY 0xC5 SMOD NUMBER 0xF7 POP SLOAD 0xBF PUSH6 0x8159FCAED6C3 0xD8 POP 0xD4 0xD5 0xC5 ADD 0xD9 DUP6 0xCF 0xD 0xED PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "628:16679:6:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1464:5;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;628:16679;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;628:16679:6:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 4485, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 2573, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 4185, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 4479, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 4491, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 4414, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 2758, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_2549": { + "entryPoint": 2565, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 3668, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 2490, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 4093, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 3729, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_1872": { + "entryPoint": 2907, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1142, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 1683, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1072, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 2236, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 5221, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 4882, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 926, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 1549, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 1517, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 2034, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 2012, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 700, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 2384, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 1866, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 4208, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 2132, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 1421, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 6415, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 5855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 6133, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 5343, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 8360, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 6481, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 5674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6023, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 6658, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 5940, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 6527, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 6154, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 5876, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 5364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 8381, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 5695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5790, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 5421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 8227, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7521, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7189, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8085, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7685, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7831, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7939, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7443, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7297, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6897, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7043, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6068, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 7570, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5805, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 8284, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 5436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5607, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7224, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8120, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7720, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7866, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7974, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7478, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7332, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6932, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7078, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6083, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 6324, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 5256, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 6351, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 8199, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 5463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 8210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5474, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7510, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 5772, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5409, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 5276, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 5740, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 5641, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 6400, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 5491, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 6769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 6275, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 8152, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 6722, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 6228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 6218, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 6223, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 5271, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 5266, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 5533, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 7110, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 8006, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 7606, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 7752, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 7898, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 7364, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 7256, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 6818, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 6964, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 5832, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 6110, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 5320, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 5651, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:23150:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1577:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1588:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1604:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1598:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1598:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1588:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1560:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1570:6:22", + "type": "" + } + ], + "src": "1518:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1719:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1736:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1741:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1729:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1729:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1729:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "1757:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1781:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1757:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1691:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1696:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1707:11:22", + "type": "" + } + ], + "src": "1623:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1860:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1870:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1879:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1874:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1939:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1964:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1969:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1960:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1960:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1983:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1988:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1979:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1973:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1953:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1953:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1900:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1903:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1897:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1897:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1911:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1913:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1922:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1925:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1918:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1913:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1893:3:22", + "statements": [] + }, + "src": "1889:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2022:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2027:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2018:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2018:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2036:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2011:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2011:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2011:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1842:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1847:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1852:6:22", + "type": "" + } + ], + "src": "1798:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2098:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2108:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2126:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2133:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2122:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2142:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2138:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2118:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2118:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "2108:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2081:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "2091:6:22", + "type": "" + } + ], + "src": "2050:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2250:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2260:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2307:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2274:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "2274:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2264:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2322:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2388:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2393:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2329:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2322:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2448:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2455:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2444:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2444:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2462:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2467:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2409:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2409:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "2483:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2494:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2521:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2499:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "2499:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2490:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2483:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2231:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2238:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2246:3:22", + "type": "" + } + ], + "src": "2158:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2659:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2669:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2681:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2692:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2677:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2677:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2669:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2716:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2727:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2712:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2712:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2735:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2741:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2731:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2731:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2705:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2705:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2705:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "2761:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2833:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2842:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2769:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "2769:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2761:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2631:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2643:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2654:4:22", + "type": "" + } + ], + "src": "2541:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2905:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2915:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2926:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2915:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2887:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2897:7:22", + "type": "" + } + ], + "src": "2860:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2986:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3043:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3052:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3055:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3045:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3045:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3045:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3009:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3034:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3016:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3016:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3006:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3006:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2999:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:43:22" + }, + "nodeType": "YulIf", + "src": "2996:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2979:5:22", + "type": "" + } + ], + "src": "2943:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3123:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3133:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3155:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3142:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "3142:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3133:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3198:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3171:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "3171:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3171:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3101:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3109:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3117:5:22", + "type": "" + } + ], + "src": "3071:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3282:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3328:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3330:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3330:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3330:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3303:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3312:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3299:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3299:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3324:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3295:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3295:32:22" + }, + "nodeType": "YulIf", + "src": "3292:119:22" + }, + { + "nodeType": "YulBlock", + "src": "3421:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3436:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3450:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3440:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3465:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3500:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3511:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3496:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3496:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3520:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3475:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "3475:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3465:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3252:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3263:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3275:6:22", + "type": "" + } + ], + "src": "3216:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3596:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3621:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3628:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3617:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3617:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3606:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3588:7:22", + "type": "" + } + ], + "src": "3551:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3728:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3738:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3767:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "3749:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3749:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3738:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3710:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3720:7:22", + "type": "" + } + ], + "src": "3683:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3850:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3867:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3890:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3872:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3872:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3860:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3860:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3860:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3838:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3845:3:22", + "type": "" + } + ], + "src": "3785:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4007:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4017:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4029:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4040:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4025:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4025:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4017:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4097:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4110:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4121:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4106:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4106:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4053:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "4053:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4053:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3979:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3991:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4002:4:22", + "type": "" + } + ], + "src": "3909:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4180:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4237:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4246:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4249:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4239:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4239:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4203:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4228:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "4210:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "4210:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4200:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4200:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4193:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4193:43:22" + }, + "nodeType": "YulIf", + "src": "4190:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4173:5:22", + "type": "" + } + ], + "src": "4137:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4317:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4327:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4349:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4336:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "4336:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4327:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4392:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "4365:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "4365:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4365:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4295:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4303:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4311:5:22", + "type": "" + } + ], + "src": "4265:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4493:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4539:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4541:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4541:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4541:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4514:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4523:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4510:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4510:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4535:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4506:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4506:32:22" + }, + "nodeType": "YulIf", + "src": "4503:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4632:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4647:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4661:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4651:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4676:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4711:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4722:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4707:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4707:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4731:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4686:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4686:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4676:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4759:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4774:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4788:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4778:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4804:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4839:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4850:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4835:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4835:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4859:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4814:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4814:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4804:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4455:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4466:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4478:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4486:6:22", + "type": "" + } + ], + "src": "4410:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4990:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5036:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5038:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5038:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5038:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5011:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5020:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5007:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5007:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5032:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5003:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5003:32:22" + }, + "nodeType": "YulIf", + "src": "5000:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5129:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5144:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5158:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5148:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5173:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5208:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5219:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5204:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5204:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5228:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5183:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5183:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5173:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5256:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5271:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5285:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5275:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5301:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5336:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5347:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5332:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5332:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5356:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5311:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5311:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5301:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5384:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5399:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5413:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5403:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5429:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5464:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5475:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5460:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5484:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5439:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5439:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4944:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4955:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4967:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4975:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4983:6:22", + "type": "" + } + ], + "src": "4890:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5581:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5627:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5629:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5629:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5629:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5602:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5611:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5598:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5598:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5623:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5594:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5594:32:22" + }, + "nodeType": "YulIf", + "src": "5591:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5720:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5735:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5749:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5739:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5764:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5799:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5810:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5795:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5795:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5819:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5774:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5774:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5764:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5551:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5562:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5574:6:22", + "type": "" + } + ], + "src": "5515:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5915:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5932:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5955:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5937:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5937:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5925:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5925:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5925:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5903:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5910:3:22", + "type": "" + } + ], + "src": "5850:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6072:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6082:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6094:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6105:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6090:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6090:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6082:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6162:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6175:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6186:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6171:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6171:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6118:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "6118:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6118:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6044:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6056:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6067:4:22", + "type": "" + } + ], + "src": "5974:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6242:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6296:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6305:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6308:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6298:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6298:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6298:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6265:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6287:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "6272:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "6272:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6262:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6262:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6255:40:22" + }, + "nodeType": "YulIf", + "src": "6252:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6235:5:22", + "type": "" + } + ], + "src": "6202:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6373:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6383:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6405:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6392:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "6392:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6383:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6445:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "6421:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "6421:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6421:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6351:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6359:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6367:5:22", + "type": "" + } + ], + "src": "6324:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6543:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6589:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6591:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6591:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6591:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6564:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6573:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6560:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6560:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6585:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6556:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6556:32:22" + }, + "nodeType": "YulIf", + "src": "6553:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6682:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6697:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6711:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6701:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6726:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6761:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6772:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6757:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6757:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6781:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6736:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6736:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6726:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6809:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6824:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6838:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6828:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6854:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6886:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6897:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6882:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6882:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6906:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "6864:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6864:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6854:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6505:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6516:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6528:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6536:6:22", + "type": "" + } + ], + "src": "6463:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7026:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7043:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7046:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7036:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7036:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7036:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "6937:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7149:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7166:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7169:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7159:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7159:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7159:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "7060:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7211:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7228:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7231:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7221:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7221:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7221:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7325:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7328:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7318:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7318:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7318:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7349:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7352:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7342:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7342:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7342:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "7183:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7412:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7422:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7444:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7474:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7452:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "7452:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7440:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7440:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7426:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7591:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7593:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7593:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7593:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7534:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7546:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7531:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7531:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7570:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7582:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7567:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7567:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7528:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7528:62:22" + }, + "nodeType": "YulIf", + "src": "7525:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7629:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7633:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7622:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7622:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7622:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7398:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7406:4:22", + "type": "" + } + ], + "src": "7369:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7697:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7707:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7717:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7717:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7707:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7766:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7774:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7746:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "7746:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7746:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7681:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7690:6:22", + "type": "" + } + ], + "src": "7656:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7857:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7962:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7964:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7964:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7964:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7934:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7942:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7931:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7931:30:22" + }, + "nodeType": "YulIf", + "src": "7928:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "7994:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8024:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "8002:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "8002:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7994:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8068:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "8080:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8086:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8076:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "8068:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7841:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7852:4:22", + "type": "" + } + ], + "src": "7791:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8168:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8191:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8196:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8201:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "8178:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8178:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8178:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8228:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8233:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8224:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8224:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8242:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8217:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8217:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8217:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8150:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "8155:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8160:6:22", + "type": "" + } + ], + "src": "8104:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8339:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8349:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8415:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8374:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "8374:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "8358:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "8358:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8349:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8439:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8446:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8432:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8432:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8432:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8462:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8477:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8484:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8473:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8473:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "8466:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8527:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "8529:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8529:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8529:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8508:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8513:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8504:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8522:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8501:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8501:25:22" + }, + "nodeType": "YulIf", + "src": "8498:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8656:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8661:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8666:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "8619:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "8619:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8619:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8312:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8317:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8325:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8333:5:22", + "type": "" + } + ], + "src": "8256:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8759:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8808:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8810:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8810:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8810:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8787:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8795:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8783:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8783:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8802:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8779:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8779:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8772:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8772:35:22" + }, + "nodeType": "YulIf", + "src": "8769:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8900:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8927:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8914:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8914:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8904:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8943:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9011:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8999:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9018:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9026:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8952:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "8952:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8943:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8737:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8745:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8753:5:22", + "type": "" + } + ], + "src": "8698:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9168:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9215:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9217:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9217:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9217:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9189:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9198:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9185:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9185:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9210:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9181:33:22" + }, + "nodeType": "YulIf", + "src": "9178:120:22" + }, + { + "nodeType": "YulBlock", + "src": "9308:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9323:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9337:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9327:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9352:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9387:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9398:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9383:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9383:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9407:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9362:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9362:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9352:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9435:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9450:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9464:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9454:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9480:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9515:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9526:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9511:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9511:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9535:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9490:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9490:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9480:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9563:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9578:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9592:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9582:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9608:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9643:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9654:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9639:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9663:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9618:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9618:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9608:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9691:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9706:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9737:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9748:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9733:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9733:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9720:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "9720:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9710:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9799:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9801:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9801:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9801:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9771:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9779:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9768:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9768:30:22" + }, + "nodeType": "YulIf", + "src": "9765:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "9896:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9940:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9951:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9936:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9960:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9906:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "9906:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9896:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9114:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9125:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9137:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9145:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9153:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "9161:6:22", + "type": "" + } + ], + "src": "9042:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10074:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10120:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10122:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10122:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10122:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10095:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10104:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10091:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10091:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10116:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10087:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10087:32:22" + }, + "nodeType": "YulIf", + "src": "10084:119:22" + }, + { + "nodeType": "YulBlock", + "src": "10213:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10228:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10242:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10232:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10257:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10292:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10303:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10288:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10312:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10267:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10267:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10257:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10340:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10355:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10369:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10359:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10385:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10420:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10431:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10416:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10416:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10440:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10395:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10395:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10385:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10036:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10047:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10059:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10067:6:22", + "type": "" + } + ], + "src": "9991:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10499:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10516:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10519:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10509:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10509:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10509:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10613:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10616:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10606:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10606:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10606:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10637:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10640:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10630:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10630:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10630:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "10471:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10708:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10718:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10732:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10738:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10728:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10728:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10718:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10749:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10779:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10785:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10775:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "10753:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10826:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10840:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10854:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10862:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10850:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10840:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10806:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10799:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10799:26:22" + }, + "nodeType": "YulIf", + "src": "10796:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10929:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "10943:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "10943:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10943:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10893:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10916:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10924:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10913:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10913:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "10890:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10890:38:22" + }, + "nodeType": "YulIf", + "src": "10887:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "10692:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10701:6:22", + "type": "" + } + ], + "src": "10657:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11089:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11111:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11119:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11107:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11107:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11123:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11100:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11100:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11100:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11179:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11187:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11175:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11175:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11192:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11168:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11168:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11168:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11081:6:22", + "type": "" + } + ], + "src": "10983:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11355:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11365:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11431:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11436:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11372:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11372:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11365:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11537:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "11448:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11448:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11448:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11550:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11561:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11566:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11557:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11550:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11343:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11351:3:22", + "type": "" + } + ], + "src": "11209:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11752:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11762:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11774:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11785:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11770:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11762:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11809:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11820:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11805:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11805:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11828:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11834:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11824:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11824:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11798:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11798:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11798:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11854:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11988:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11862:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11862:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11854:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11732:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11747:4:22", + "type": "" + } + ], + "src": "11581:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12112:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12134:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12142:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12130:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12146:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12123:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12123:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12123:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12202:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12210:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12198:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12198:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12215:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12191:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12191:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12191:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12104:6:22", + "type": "" + } + ], + "src": "12006:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12406:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12416:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12482:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12487:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12423:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12423:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12416:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12588:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "12499:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12499:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12499:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12601:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12612:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12617:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12608:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12608:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12601:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12394:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12402:3:22", + "type": "" + } + ], + "src": "12260:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12803:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12813:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12825:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12836:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12821:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12821:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12813:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12860:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12871:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12856:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12856:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12879:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12885:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12875:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12875:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12849:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12849:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12849:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "12905:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13039:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12913:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "12913:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12905:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12783:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12798:4:22", + "type": "" + } + ], + "src": "12632:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13163:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13185:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13193:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13181:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13197:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13174:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13174:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13174:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13253:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13261:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13249:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13249:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13266:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13242:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13242:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13242:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13155:6:22", + "type": "" + } + ], + "src": "13057:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13441:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13451:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13517:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13522:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13458:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13458:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13451:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13623:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "13534:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13534:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13534:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13636:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13647:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13652:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13643:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13643:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13636:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13429:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13437:3:22", + "type": "" + } + ], + "src": "13295:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13838:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13848:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13860:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13871:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13856:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13856:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13848:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13895:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13906:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13891:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13891:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13914:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13920:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13910:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13910:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13884:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13884:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13884:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13940:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14074:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13948:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13948:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13940:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13818:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13833:4:22", + "type": "" + } + ], + "src": "13667:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14198:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14220:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14228:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14216:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14216:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14232:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14209:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14209:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14209:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14190:6:22", + "type": "" + } + ], + "src": "14092:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14418:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14428:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14494:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14499:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14435:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "14435:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14428:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14600:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "14511:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "14511:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14511:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "14613:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14624:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14629:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14620:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14620:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14613:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14406:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14414:3:22", + "type": "" + } + ], + "src": "14272:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14815:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14825:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14837:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14848:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14833:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14833:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14825:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14883:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14868:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14891:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14897:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14887:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14887:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14861:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14861:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14861:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "14917:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15051:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14925:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "14925:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14917:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14795:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14810:4:22", + "type": "" + } + ], + "src": "14644:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15175:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15197:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15205:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15193:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15193:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15209:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15186:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15186:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15186:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15265:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15273:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15261:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15278:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15254:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15254:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15254:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15167:6:22", + "type": "" + } + ], + "src": "15069:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15449:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15459:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15525:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15530:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15466:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15466:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15459:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15631:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "15542:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15542:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15542:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15644:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15655:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15660:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15651:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15651:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15644:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15437:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15445:3:22", + "type": "" + } + ], + "src": "15303:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15846:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15856:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15868:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15879:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15864:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15864:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15856:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15903:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15914:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15899:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15899:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15922:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15918:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15892:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15892:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15892:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15948:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16082:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15956:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15956:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15948:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15841:4:22", + "type": "" + } + ], + "src": "15675:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16214:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16224:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16239:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "16224:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16186:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16191:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "16202:11:22", + "type": "" + } + ], + "src": "16100:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16364:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16374:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16421:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16388:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "16388:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16378:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16436:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16520:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16525:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16443:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "16443:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16436:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16580:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16587:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16576:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16576:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16594:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16599:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "16541:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "16541:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16541:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "16615:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16626:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16631:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16622:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16622:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16615:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16345:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16352:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16360:3:22", + "type": "" + } + ], + "src": "16254:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16834:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16845:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "16934:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16943:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16852:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "16852:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16845:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16957:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "17046:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17055:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16964:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "16964:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16957:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17069:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17076:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17069:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16805:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "16811:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16819:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16830:3:22", + "type": "" + } + ], + "src": "16650:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17197:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17219:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17227:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17215:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17215:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17231:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17208:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17208:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17208:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17287:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17295:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17283:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17283:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17300:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17276:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17276:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17276:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17189:6:22", + "type": "" + } + ], + "src": "17091:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17467:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17477:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17543:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17548:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17484:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17484:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17477:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17649:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "17560:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17560:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17560:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17662:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17673:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17678:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17669:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17669:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17662:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17455:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17463:3:22", + "type": "" + } + ], + "src": "17321:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17864:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17874:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17886:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17897:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17882:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17882:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17874:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17921:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17932:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17917:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17917:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17940:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17946:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17936:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17910:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17910:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17910:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17966:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18100:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17974:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17974:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17966:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17844:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17859:4:22", + "type": "" + } + ], + "src": "17693:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18224:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18246:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18254:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18242:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18242:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18258:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18235:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18235:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18235:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18314:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18322:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18310:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18327:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18303:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18303:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18303:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18216:6:22", + "type": "" + } + ], + "src": "18118:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18493:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18503:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18569:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18574:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18510:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18510:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18503:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18675:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "18586:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18586:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18586:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18688:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18699:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18704:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18695:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18695:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18688:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18481:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18489:3:22", + "type": "" + } + ], + "src": "18347:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18890:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18900:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18912:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18923:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18908:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18908:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18900:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18947:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18958:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18943:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18943:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18966:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18972:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18962:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18962:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18936:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18936:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18936:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18992:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19126:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19000:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19000:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18992:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18870:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18885:4:22", + "type": "" + } + ], + "src": "18719:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19250:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19272:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19280:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19268:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19268:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19284:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19261:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19261:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19261:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19242:6:22", + "type": "" + } + ], + "src": "19144:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19471:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19481:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19547:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19552:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19488:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19488:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19481:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19653:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "19564:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19564:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19564:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19666:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19677:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19682:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19673:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19666:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19459:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19467:3:22", + "type": "" + } + ], + "src": "19325:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19868:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19878:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19890:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19901:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19886:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19886:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19878:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19925:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19936:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19921:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19921:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19944:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19950:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19940:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19940:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19914:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19914:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19914:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19970:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20104:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19978:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19978:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19970:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19848:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19863:4:22", + "type": "" + } + ], + "src": "19697:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20228:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20250:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20258:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20246:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20246:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20262:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20239:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20239:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20318:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20326:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20314:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20314:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20331:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20307:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20307:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20220:6:22", + "type": "" + } + ], + "src": "20122:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20511:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20521:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20587:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20592:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20528:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20528:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20521:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20693:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "20604:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20604:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20604:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20706:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20717:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20722:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20713:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20713:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20706:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20499:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20507:3:22", + "type": "" + } + ], + "src": "20365:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20908:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20918:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20930:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20941:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20926:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20926:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20918:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20965:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20976:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20961:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20961:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20984:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20990:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20980:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20980:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20954:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20954:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20954:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "21010:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21144:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21018:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "21018:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21010:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20888:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20903:4:22", + "type": "" + } + ], + "src": "20737:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21190:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21207:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21210:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21200:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21200:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21200:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21304:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21307:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21297:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21297:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21297:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21328:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21331:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21321:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21321:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "21162:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21406:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21417:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21433:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21427:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "21427:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21417:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21389:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21399:6:22", + "type": "" + } + ], + "src": "21348:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21547:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21564:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21569:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21557:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21557:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21557:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "21585:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21604:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21609:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21600:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21600:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "21585:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21519:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21524:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "21535:11:22", + "type": "" + } + ], + "src": "21452:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21716:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21726:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21772:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "21740:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "21740:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21730:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21787:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21852:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21857:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21794:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "21794:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21787:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21912:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21919:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21908:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21908:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21926:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21931:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "21873:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "21873:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21873:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "21947:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21958:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21985:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "21963:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "21963:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21954:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21954:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21947:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21697:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21704:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21712:3:22", + "type": "" + } + ], + "src": "21626:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22205:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22215:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22227:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22238:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22223:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22223:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22215:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "22296:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22309:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22305:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22305:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22252:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22252:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22252:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "22377:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22401:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22386:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "22333:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22333:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22333:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "22459:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22472:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22483:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22468:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "22415:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "22415:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22415:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22508:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22519:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22504:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22528:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22534:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22524:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22524:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22497:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22497:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22497:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "22554:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "22624:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22633:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22562:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "22562:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22554:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22153:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "22165:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "22173:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "22181:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22189:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22200:4:22", + "type": "" + } + ], + "src": "22005:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22713:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22723:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22738:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "22732:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "22732:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22723:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22780:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "22754:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "22754:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22754:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "22691:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22699:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22707:5:22", + "type": "" + } + ], + "src": "22651:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22874:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22920:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "22922:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "22922:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22922:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22895:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22904:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22891:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22891:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22916:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "22887:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22887:32:22" + }, + "nodeType": "YulIf", + "src": "22884:119:22" + }, + { + "nodeType": "YulBlock", + "src": "23013:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23028:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23042:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "23032:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23057:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23102:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "23113:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23098:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23098:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "23122:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "23067:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "23067:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "23057:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22844:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "22855:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22867:6:22", + "type": "" + } + ], + "src": "22798:349:22" + } + ] + }, + "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_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 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 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 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_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_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 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 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__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 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 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_decode_tuple_t_addresst_addresst_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_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 function abi_decode_tuple_t_address(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_address(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 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e991906114f4565b6102bc565b6040516100fb919061153c565b60405180910390f35b61010c61039e565b60405161011991906115e7565b60405180910390f35b61013c6004803603810190610137919061163f565b610430565b60405161014991906116ad565b60405180910390f35b61016c600480360381019061016791906116f4565b610476565b005b61018860048036038101906101839190611734565b61058d565b005b6101a4600480360381019061019f9190611734565b6105ed565b005b6101c060048036038101906101bb919061163f565b61060d565b6040516101cd91906116ad565b60405180910390f35b6101f060048036038101906101eb9190611787565b610693565b6040516101fd91906117c3565b60405180910390f35b61020e61074a565b60405161021b91906115e7565b60405180910390f35b61023e6004803603810190610239919061180a565b6107dc565b005b61025a6004803603810190610255919061197f565b6107f2565b005b6102766004803603810190610271919061163f565b610854565b60405161028391906115e7565b60405180910390f35b6102a660048036038101906102a19190611a02565b6108bc565b6040516102b3919061153c565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610950565b5b9050919050565b6060600080546103ad90611a71565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611a71565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b826109ba565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104818261060d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890611b14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610510610a05565b73ffffffffffffffffffffffffffffffffffffffff16148061053f575061053e81610539610a05565b6108bc565b5b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057590611ba6565b60405180910390fd5b6105888383610a0d565b505050565b61059e610598610a05565b82610ac6565b6105dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d490611c38565b60405180910390fd5b6105e8838383610b5b565b505050565b610608838383604051806020016040528060008152506107f2565b505050565b60008061061983610e54565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190611ca4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90611d36565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461075990611a71565b80601f016020809104026020016040519081016040528092919081815260200182805461078590611a71565b80156107d25780601f106107a7576101008083540402835291602001916107d2565b820191906000526020600020905b8154815290600101906020018083116107b557829003601f168201915b5050505050905090565b6107ee6107e7610a05565b8383610e91565b5050565b6108036107fd610a05565b83610ac6565b610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990611c38565b60405180910390fd5b61084e84848484610ffd565b50505050565b606061085f826109ba565b6000610869611059565b9050600081511161088957604051806020016040528060008152506108b4565b8061089384611070565b6040516020016108a4929190611d92565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6109c38161113e565b610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611ca4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610a808361060d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ad28361060d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610b145750610b1381856108bc565b5b80610b5257508373ffffffffffffffffffffffffffffffffffffffff16610b3a84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b7b8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890611e28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611eba565b60405180910390fd5b610c4d838383600161117f565b8273ffffffffffffffffffffffffffffffffffffffff16610c6d8261060d565b73ffffffffffffffffffffffffffffffffffffffff1614610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba90611e28565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e4f8383836001611185565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611f26565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ff0919061153c565b60405180910390a3505050565b611008848484610b5b565b6110148484848461118b565b611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a90611fb8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606000600161107f84611312565b01905060008167ffffffffffffffff81111561109e5761109d611854565b5b6040519080825280601f01601f1916602001820160405280156110d05781602001600182028036833780820191505090505b509050600082602001820190505b600115611133578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161112757611126611fd8565b5b049450600085036110de575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661116083610e54565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006111ac8473ffffffffffffffffffffffffffffffffffffffff16611465565b15611305578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026111d5610a05565b8786866040518563ffffffff1660e01b81526004016111f7949392919061205c565b6020604051808303816000875af192505050801561123357506040513d601f19601f8201168201806040525081019061123091906120bd565b60015b6112b5573d8060008114611263576040519150601f19603f3d011682016040523d82523d6000602084013e611268565b606091505b5060008151036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490611fb8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061130a565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611370577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161136657611365611fd8565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106113ad576d04ee2d6d415b85acef810000000083816113a3576113a2611fd8565b5b0492506020810190505b662386f26fc1000083106113dc57662386f26fc1000083816113d2576113d1611fd8565b5b0492506010810190505b6305f5e1008310611405576305f5e10083816113fb576113fa611fd8565b5b0492506008810190505b612710831061142a5761271083816114205761141f611fd8565b5b0492506004810190505b6064831061144d576064838161144357611442611fd8565b5b0492506002810190505b600a831061145c576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d18161149c565b81146114dc57600080fd5b50565b6000813590506114ee816114c8565b92915050565b60006020828403121561150a57611509611492565b5b6000611518848285016114df565b91505092915050565b60008115159050919050565b61153681611521565b82525050565b6000602082019050611551600083018461152d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611591578082015181840152602081019050611576565b60008484015250505050565b6000601f19601f8301169050919050565b60006115b982611557565b6115c38185611562565b93506115d3818560208601611573565b6115dc8161159d565b840191505092915050565b6000602082019050818103600083015261160181846115ae565b905092915050565b6000819050919050565b61161c81611609565b811461162757600080fd5b50565b60008135905061163981611613565b92915050565b60006020828403121561165557611654611492565b5b60006116638482850161162a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116978261166c565b9050919050565b6116a78161168c565b82525050565b60006020820190506116c2600083018461169e565b92915050565b6116d18161168c565b81146116dc57600080fd5b50565b6000813590506116ee816116c8565b92915050565b6000806040838503121561170b5761170a611492565b5b6000611719858286016116df565b925050602061172a8582860161162a565b9150509250929050565b60008060006060848603121561174d5761174c611492565b5b600061175b868287016116df565b935050602061176c868287016116df565b925050604061177d8682870161162a565b9150509250925092565b60006020828403121561179d5761179c611492565b5b60006117ab848285016116df565b91505092915050565b6117bd81611609565b82525050565b60006020820190506117d860008301846117b4565b92915050565b6117e781611521565b81146117f257600080fd5b50565b600081359050611804816117de565b92915050565b6000806040838503121561182157611820611492565b5b600061182f858286016116df565b9250506020611840858286016117f5565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61188c8261159d565b810181811067ffffffffffffffff821117156118ab576118aa611854565b5b80604052505050565b60006118be611488565b90506118ca8282611883565b919050565b600067ffffffffffffffff8211156118ea576118e9611854565b5b6118f38261159d565b9050602081019050919050565b82818337600083830152505050565b600061192261191d846118cf565b6118b4565b90508281526020810184848401111561193e5761193d61184f565b5b611949848285611900565b509392505050565b600082601f8301126119665761196561184a565b5b813561197684826020860161190f565b91505092915050565b6000806000806080858703121561199957611998611492565b5b60006119a7878288016116df565b94505060206119b8878288016116df565b93505060406119c98782880161162a565b925050606085013567ffffffffffffffff8111156119ea576119e9611497565b5b6119f687828801611951565b91505092959194509250565b60008060408385031215611a1957611a18611492565b5b6000611a27858286016116df565b9250506020611a38858286016116df565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a8957607f821691505b602082108103611a9c57611a9b611a42565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611afe602183611562565b9150611b0982611aa2565b604082019050919050565b60006020820190508181036000830152611b2d81611af1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000611b90603d83611562565b9150611b9b82611b34565b604082019050919050565b60006020820190508181036000830152611bbf81611b83565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000611c22602d83611562565b9150611c2d82611bc6565b604082019050919050565b60006020820190508181036000830152611c5181611c15565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000611c8e601883611562565b9150611c9982611c58565b602082019050919050565b60006020820190508181036000830152611cbd81611c81565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611d20602983611562565b9150611d2b82611cc4565b604082019050919050565b60006020820190508181036000830152611d4f81611d13565b9050919050565b600081905092915050565b6000611d6c82611557565b611d768185611d56565b9350611d86818560208601611573565b80840191505092915050565b6000611d9e8285611d61565b9150611daa8284611d61565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000611e12602583611562565b9150611e1d82611db6565b604082019050919050565b60006020820190508181036000830152611e4181611e05565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ea4602483611562565b9150611eaf82611e48565b604082019050919050565b60006020820190508181036000830152611ed381611e97565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000611f10601983611562565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000611fa2603283611562565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b600061202e82612007565b6120388185612012565b9350612048818560208601611573565b6120518161159d565b840191505092915050565b6000608082019050612071600083018761169e565b61207e602083018661169e565b61208b60408301856117b4565b818103606083015261209d8184612023565b905095945050505050565b6000815190506120b7816114c8565b92915050565b6000602082840312156120d3576120d2611492565b5b60006120e1848285016120a8565b9150509291505056fea26469706673582212201a0a48262c283ec50743f75054bf658159fcaed6c3d850d4d5c501d985cf0ded64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x28C JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x18A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x14F4 JUMP JUMPDEST PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFB SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x137 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x476 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x1734 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x16AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x1787 JUMP JUMPDEST PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x17C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20E PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21B SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0x180A JUMP JUMPDEST PUSH2 0x7DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x255 SWAP2 SWAP1 PUSH2 0x197F JUMP JUMPDEST PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x276 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x163F JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x15E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x1A02 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x387 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x397 JUMPI POP PUSH2 0x396 DUP3 PUSH2 0x950 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x1A71 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 0x3D9 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x426 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x426 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 0x409 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x481 DUP3 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E8 SWAP1 PUSH2 0x1B14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x510 PUSH2 0xA05 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x53F JUMPI POP PUSH2 0x53E DUP2 PUSH2 0x539 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x8BC JUMP JUMPDEST JUMPDEST PUSH2 0x57E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x575 SWAP1 PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x588 DUP4 DUP4 PUSH2 0xA0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x59E PUSH2 0x598 PUSH2 0xA05 JUMP JUMPDEST DUP3 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x5DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D4 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E8 DUP4 DUP4 DUP4 PUSH2 0xB5B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x608 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x619 DUP4 PUSH2 0xE54 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x68A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x681 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x703 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6FA SWAP1 PUSH2 0x1D36 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x759 SWAP1 PUSH2 0x1A71 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 0x785 SWAP1 PUSH2 0x1A71 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D2 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 0x7B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7EE PUSH2 0x7E7 PUSH2 0xA05 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x803 PUSH2 0x7FD PUSH2 0xA05 JUMP JUMPDEST DUP4 PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x839 SWAP1 PUSH2 0x1C38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x84E DUP5 DUP5 DUP5 DUP5 PUSH2 0xFFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x85F DUP3 PUSH2 0x9BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x869 PUSH2 0x1059 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x889 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8B4 JUMP JUMPDEST DUP1 PUSH2 0x893 DUP5 PUSH2 0x1070 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C3 DUP2 PUSH2 0x113E JUMP JUMPDEST PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1CA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA80 DUP4 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAD2 DUP4 PUSH2 0x60D JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB13 DUP2 DUP6 PUSH2 0x8BC JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0xB52 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB3A DUP5 PUSH2 0x430 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB7B DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBC8 SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC37 SWAP1 PUSH2 0x1EBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC4D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x117F JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC6D DUP3 PUSH2 0x60D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCBA SWAP1 PUSH2 0x1E28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE4F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1185 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF6 SWAP1 PUSH2 0x1F26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0xFF0 SWAP2 SWAP1 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1008 DUP5 DUP5 DUP5 PUSH2 0xB5B JUMP JUMPDEST PUSH2 0x1014 DUP5 DUP5 DUP5 DUP5 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104A SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x107F DUP5 PUSH2 0x1312 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x109E JUMPI PUSH2 0x109D PUSH2 0x1854 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 0x10D0 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 0x1133 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x10DE JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1160 DUP4 PUSH2 0xE54 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1465 JUMP JUMPDEST ISZERO PUSH2 0x1305 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x11D5 PUSH2 0xA05 JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1233 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 0x1230 SWAP2 SWAP1 PUSH2 0x20BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x12B5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1263 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 0x1268 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x12AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A4 SWAP1 PUSH2 0x1FB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x130A JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1370 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1366 JUMPI PUSH2 0x1365 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x13AD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x13A3 JUMPI PUSH2 0x13A2 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x13DC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x13D2 JUMPI PUSH2 0x13D1 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1405 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x13FB JUMPI PUSH2 0x13FA PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x142A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x144D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x1FD8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x145C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14D1 DUP2 PUSH2 0x149C JUMP JUMPDEST DUP2 EQ PUSH2 0x14DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14EE DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x150A JUMPI PUSH2 0x1509 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1518 DUP5 DUP3 DUP6 ADD PUSH2 0x14DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1536 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1551 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x152D JUMP JUMPDEST 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 0x1591 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1576 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 0x15B9 DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x15C3 DUP2 DUP6 PUSH2 0x1562 JUMP JUMPDEST SWAP4 POP PUSH2 0x15D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x15DC DUP2 PUSH2 0x159D 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 0x1601 DUP2 DUP5 PUSH2 0x15AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x161C DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP2 EQ PUSH2 0x1627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1639 DUP2 PUSH2 0x1613 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1654 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1663 DUP5 DUP3 DUP6 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1697 DUP3 PUSH2 0x166C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A7 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x169E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D1 DUP2 PUSH2 0x168C JUMP JUMPDEST DUP2 EQ PUSH2 0x16DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16EE DUP2 PUSH2 0x16C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170B JUMPI PUSH2 0x170A PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1719 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x172A DUP6 DUP3 DUP7 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x174D JUMPI PUSH2 0x174C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x175B DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x176C DUP7 DUP3 DUP8 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x177D DUP7 DUP3 DUP8 ADD PUSH2 0x162A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179D JUMPI PUSH2 0x179C PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17AB DUP5 DUP3 DUP6 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17BD DUP2 PUSH2 0x1609 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x17B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17E7 DUP2 PUSH2 0x1521 JUMP JUMPDEST DUP2 EQ PUSH2 0x17F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1804 DUP2 PUSH2 0x17DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1821 JUMPI PUSH2 0x1820 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x182F DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1840 DUP6 DUP3 DUP7 ADD PUSH2 0x17F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x188C DUP3 PUSH2 0x159D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x18AB JUMPI PUSH2 0x18AA PUSH2 0x1854 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BE PUSH2 0x1488 JUMP JUMPDEST SWAP1 POP PUSH2 0x18CA DUP3 DUP3 PUSH2 0x1883 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18EA JUMPI PUSH2 0x18E9 PUSH2 0x1854 JUMP JUMPDEST JUMPDEST PUSH2 0x18F3 DUP3 PUSH2 0x159D 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 0x1922 PUSH2 0x191D DUP5 PUSH2 0x18CF JUMP JUMPDEST PUSH2 0x18B4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x193E JUMPI PUSH2 0x193D PUSH2 0x184F JUMP JUMPDEST JUMPDEST PUSH2 0x1949 DUP5 DUP3 DUP6 PUSH2 0x1900 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1966 JUMPI PUSH2 0x1965 PUSH2 0x184A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1976 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x190F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1999 JUMPI PUSH2 0x1998 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A7 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x19B8 DUP8 DUP3 DUP9 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x19C9 DUP8 DUP3 DUP9 ADD PUSH2 0x162A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EA JUMPI PUSH2 0x19E9 PUSH2 0x1497 JUMP JUMPDEST JUMPDEST PUSH2 0x19F6 DUP8 DUP3 DUP9 ADD PUSH2 0x1951 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A19 JUMPI PUSH2 0x1A18 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A27 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A38 DUP6 DUP3 DUP7 ADD PUSH2 0x16DF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x1A89 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9C JUMPI PUSH2 0x1A9B PUSH2 0x1A42 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AFE PUSH1 0x21 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B09 DUP3 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 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 0x1B2D DUP2 PUSH2 0x1AF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B90 PUSH1 0x3D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1B9B DUP3 PUSH2 0x1B34 JUMP JUMPDEST PUSH1 0x40 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 0x1BBF DUP2 PUSH2 0x1B83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C22 PUSH1 0x2D DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2D DUP3 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x40 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 0x1C51 DUP2 PUSH2 0x1C15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8E PUSH1 0x18 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C99 DUP3 PUSH2 0x1C58 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 0x1CBD DUP2 PUSH2 0x1C81 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D20 PUSH1 0x29 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D2B DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH1 0x40 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 0x1D4F DUP2 PUSH2 0x1D13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6C DUP3 PUSH2 0x1557 JUMP JUMPDEST PUSH2 0x1D76 DUP2 DUP6 PUSH2 0x1D56 JUMP JUMPDEST SWAP4 POP PUSH2 0x1D86 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D9E DUP3 DUP6 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DAA DUP3 DUP5 PUSH2 0x1D61 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E12 PUSH1 0x25 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E1D DUP3 PUSH2 0x1DB6 JUMP JUMPDEST PUSH1 0x40 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 0x1E41 DUP2 PUSH2 0x1E05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA4 PUSH1 0x24 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EAF DUP3 PUSH2 0x1E48 JUMP JUMPDEST PUSH1 0x40 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 0x1ED3 DUP2 PUSH2 0x1E97 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F10 PUSH1 0x19 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F1B DUP3 PUSH2 0x1EDA 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 0x1F3F DUP2 PUSH2 0x1F03 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA2 PUSH1 0x32 DUP4 PUSH2 0x1562 JUMP JUMPDEST SWAP2 POP PUSH2 0x1FAD DUP3 PUSH2 0x1F46 JUMP JUMPDEST PUSH1 0x40 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 0x1FD1 DUP2 PUSH2 0x1F95 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x202E DUP3 PUSH2 0x2007 JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x2012 JUMP JUMPDEST SWAP4 POP PUSH2 0x2048 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1573 JUMP JUMPDEST PUSH2 0x2051 DUP2 PUSH2 0x159D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2071 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x207E PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x169E JUMP JUMPDEST PUSH2 0x208B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x17B4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x209D DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x20B7 DUP2 PUSH2 0x14C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D3 JUMPI PUSH2 0x20D2 PUSH2 0x1492 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E1 DUP5 DUP3 DUP6 ADD PUSH2 0x20A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE EXP BASEFEE 0x26 0x2C 0x28 RETURNDATACOPY 0xC5 SMOD NUMBER 0xF7 POP SLOAD 0xBF PUSH6 0x8159FCAED6C3 0xD8 POP 0xD4 0xD5 0xC5 ADD 0xD9 DUP6 0xCF 0xD 0xED PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "628:16679:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2471:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2190:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1570:300;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;2471:98::-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;5004:179::-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2190:219::-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;2633:102::-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;4169:153::-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;4388:162::-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;13466:133:6:-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;6838:115::-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;13075:307::-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;3319:92::-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;7256:126:6:-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;15698:154::-;;;;;:::o;16558:153::-;;;;;:::o;14151:831::-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;1175:320:10:-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;7:75:22:-;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:619::-;4967:6;4975;4983;5032:2;5020:9;5011:7;5007:23;5003:32;5000:119;;;5038:79;;:::i;:::-;5000:119;5158:1;5183:53;5228:7;5219:6;5208:9;5204:22;5183:53;:::i;:::-;5173:63;;5129:117;5285:2;5311:53;5356:7;5347:6;5336:9;5332:22;5311:53;:::i;:::-;5301:63;;5256:118;5413:2;5439:53;5484:7;5475:6;5464:9;5460:22;5439:53;:::i;:::-;5429:63;;5384:118;4890:619;;;;;:::o;5515:329::-;5574:6;5623:2;5611:9;5602:7;5598:23;5594:32;5591:119;;;5629:79;;:::i;:::-;5591:119;5749:1;5774:53;5819:7;5810:6;5799:9;5795:22;5774:53;:::i;:::-;5764:63;;5720:117;5515:329;;;;:::o;5850:118::-;5937:24;5955:5;5937:24;:::i;:::-;5932:3;5925:37;5850:118;;:::o;5974:222::-;6067:4;6105:2;6094:9;6090:18;6082:26;;6118:71;6186:1;6175:9;6171:17;6162:6;6118:71;:::i;:::-;5974:222;;;;:::o;6202:116::-;6272:21;6287:5;6272:21;:::i;:::-;6265:5;6262:32;6252:60;;6308:1;6305;6298:12;6252:60;6202:116;:::o;6324:133::-;6367:5;6405:6;6392:20;6383:29;;6421:30;6445:5;6421:30;:::i;:::-;6324:133;;;;:::o;6463:468::-;6528:6;6536;6585:2;6573:9;6564:7;6560:23;6556:32;6553:119;;;6591:79;;:::i;:::-;6553:119;6711:1;6736:53;6781:7;6772:6;6761:9;6757:22;6736:53;:::i;:::-;6726:63;;6682:117;6838:2;6864:50;6906:7;6897:6;6886:9;6882:22;6864:50;:::i;:::-;6854:60;;6809:115;6463:468;;;;;:::o;6937:117::-;7046:1;7043;7036:12;7060:117;7169:1;7166;7159:12;7183:180;7231:77;7228:1;7221:88;7328:4;7325:1;7318:15;7352:4;7349:1;7342:15;7369:281;7452:27;7474:4;7452:27;:::i;:::-;7444:6;7440:40;7582:6;7570:10;7567:22;7546:18;7534:10;7531:34;7528:62;7525:88;;;7593:18;;:::i;:::-;7525:88;7633:10;7629:2;7622:22;7412:238;7369:281;;:::o;7656:129::-;7690:6;7717:20;;:::i;:::-;7707:30;;7746:33;7774:4;7766:6;7746:33;:::i;:::-;7656:129;;;:::o;7791:307::-;7852:4;7942:18;7934:6;7931:30;7928:56;;;7964:18;;:::i;:::-;7928:56;8002:29;8024:6;8002:29;:::i;:::-;7994:37;;8086:4;8080;8076:15;8068:23;;7791:307;;;:::o;8104:146::-;8201:6;8196:3;8191;8178:30;8242:1;8233:6;8228:3;8224:16;8217:27;8104:146;;;:::o;8256:423::-;8333:5;8358:65;8374:48;8415:6;8374:48;:::i;:::-;8358:65;:::i;:::-;8349:74;;8446:6;8439:5;8432:21;8484:4;8477:5;8473:16;8522:3;8513:6;8508:3;8504:16;8501:25;8498:112;;;8529:79;;:::i;:::-;8498:112;8619:54;8666:6;8661:3;8656;8619:54;:::i;:::-;8339:340;8256:423;;;;;:::o;8698:338::-;8753:5;8802:3;8795:4;8787:6;8783:17;8779:27;8769:122;;8810:79;;:::i;:::-;8769:122;8927:6;8914:20;8952:78;9026:3;9018:6;9011:4;9003:6;8999:17;8952:78;:::i;:::-;8943:87;;8759:277;8698:338;;;;:::o;9042:943::-;9137:6;9145;9153;9161;9210:3;9198:9;9189:7;9185:23;9181:33;9178:120;;;9217:79;;:::i;:::-;9178:120;9337:1;9362:53;9407:7;9398:6;9387:9;9383:22;9362:53;:::i;:::-;9352:63;;9308:117;9464:2;9490:53;9535:7;9526:6;9515:9;9511:22;9490:53;:::i;:::-;9480:63;;9435:118;9592:2;9618:53;9663:7;9654:6;9643:9;9639:22;9618:53;:::i;:::-;9608:63;;9563:118;9748:2;9737:9;9733:18;9720:32;9779:18;9771:6;9768:30;9765:117;;;9801:79;;:::i;:::-;9765:117;9906:62;9960:7;9951:6;9940:9;9936:22;9906:62;:::i;:::-;9896:72;;9691:287;9042:943;;;;;;;:::o;9991:474::-;10059:6;10067;10116:2;10104:9;10095:7;10091:23;10087:32;10084:119;;;10122:79;;:::i;:::-;10084:119;10242:1;10267:53;10312:7;10303:6;10292:9;10288:22;10267:53;:::i;:::-;10257:63;;10213:117;10369:2;10395:53;10440:7;10431:6;10420:9;10416:22;10395:53;:::i;:::-;10385:63;;10340:118;9991:474;;;;;:::o;10471:180::-;10519:77;10516:1;10509:88;10616:4;10613:1;10606:15;10640:4;10637:1;10630:15;10657:320;10701:6;10738:1;10732:4;10728:12;10718:22;;10785:1;10779:4;10775:12;10806:18;10796:81;;10862:4;10854:6;10850:17;10840:27;;10796:81;10924:2;10916:6;10913:14;10893:18;10890:38;10887:84;;10943:18;;:::i;:::-;10887:84;10708:269;10657:320;;;:::o;10983:220::-;11123:34;11119:1;11111:6;11107:14;11100:58;11192:3;11187:2;11179:6;11175:15;11168:28;10983:220;:::o;11209:366::-;11351:3;11372:67;11436:2;11431:3;11372:67;:::i;:::-;11365:74;;11448:93;11537:3;11448:93;:::i;:::-;11566:2;11561:3;11557:12;11550:19;;11209:366;;;:::o;11581:419::-;11747:4;11785:2;11774:9;11770:18;11762:26;;11834:9;11828:4;11824:20;11820:1;11809:9;11805:17;11798:47;11862:131;11988:4;11862:131;:::i;:::-;11854:139;;11581:419;;;:::o;12006:248::-;12146:34;12142:1;12134:6;12130:14;12123:58;12215:31;12210:2;12202:6;12198:15;12191:56;12006:248;:::o;12260:366::-;12402:3;12423:67;12487:2;12482:3;12423:67;:::i;:::-;12416:74;;12499:93;12588:3;12499:93;:::i;:::-;12617:2;12612:3;12608:12;12601:19;;12260:366;;;:::o;12632:419::-;12798:4;12836:2;12825:9;12821:18;12813:26;;12885:9;12879:4;12875:20;12871:1;12860:9;12856:17;12849:47;12913:131;13039:4;12913:131;:::i;:::-;12905:139;;12632:419;;;:::o;13057:232::-;13197:34;13193:1;13185:6;13181:14;13174:58;13266:15;13261:2;13253:6;13249:15;13242:40;13057:232;:::o;13295:366::-;13437:3;13458:67;13522:2;13517:3;13458:67;:::i;:::-;13451:74;;13534:93;13623:3;13534:93;:::i;:::-;13652:2;13647:3;13643:12;13636:19;;13295:366;;;:::o;13667:419::-;13833:4;13871:2;13860:9;13856:18;13848:26;;13920:9;13914:4;13910:20;13906:1;13895:9;13891:17;13884:47;13948:131;14074:4;13948:131;:::i;:::-;13940:139;;13667:419;;;:::o;14092:174::-;14232:26;14228:1;14220:6;14216:14;14209:50;14092:174;:::o;14272:366::-;14414:3;14435:67;14499:2;14494:3;14435:67;:::i;:::-;14428:74;;14511:93;14600:3;14511:93;:::i;:::-;14629:2;14624:3;14620:12;14613:19;;14272:366;;;:::o;14644:419::-;14810:4;14848:2;14837:9;14833:18;14825:26;;14897:9;14891:4;14887:20;14883:1;14872:9;14868:17;14861:47;14925:131;15051:4;14925:131;:::i;:::-;14917:139;;14644:419;;;:::o;15069:228::-;15209:34;15205:1;15197:6;15193:14;15186:58;15278:11;15273:2;15265:6;15261:15;15254:36;15069:228;:::o;15303:366::-;15445:3;15466:67;15530:2;15525:3;15466:67;:::i;:::-;15459:74;;15542:93;15631:3;15542:93;:::i;:::-;15660:2;15655:3;15651:12;15644:19;;15303:366;;;:::o;15675:419::-;15841:4;15879:2;15868:9;15864:18;15856:26;;15928:9;15922:4;15918:20;15914:1;15903:9;15899:17;15892:47;15956:131;16082:4;15956:131;:::i;:::-;15948:139;;15675:419;;;:::o;16100:148::-;16202:11;16239:3;16224:18;;16100:148;;;;:::o;16254:390::-;16360:3;16388:39;16421:5;16388:39;:::i;:::-;16443:89;16525:6;16520:3;16443:89;:::i;:::-;16436:96;;16541:65;16599:6;16594:3;16587:4;16580:5;16576:16;16541:65;:::i;:::-;16631:6;16626:3;16622:16;16615:23;;16364:280;16254:390;;;;:::o;16650:435::-;16830:3;16852:95;16943:3;16934:6;16852:95;:::i;:::-;16845:102;;16964:95;17055:3;17046:6;16964:95;:::i;:::-;16957:102;;17076:3;17069:10;;16650:435;;;;;:::o;17091:224::-;17231:34;17227:1;17219:6;17215:14;17208:58;17300:7;17295:2;17287:6;17283:15;17276:32;17091:224;:::o;17321:366::-;17463:3;17484:67;17548:2;17543:3;17484:67;:::i;:::-;17477:74;;17560:93;17649:3;17560:93;:::i;:::-;17678:2;17673:3;17669:12;17662:19;;17321:366;;;:::o;17693:419::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17946:9;17940:4;17936:20;17932:1;17921:9;17917:17;17910:47;17974:131;18100:4;17974:131;:::i;:::-;17966:139;;17693:419;;;:::o;18118:223::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:6;18322:2;18314:6;18310:15;18303:31;18118:223;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:175::-;19284:27;19280:1;19272:6;19268:14;19261:51;19144:175;:::o;19325:366::-;19467:3;19488:67;19552:2;19547:3;19488:67;:::i;:::-;19481:74;;19564:93;19653:3;19564:93;:::i;:::-;19682:2;19677:3;19673:12;19666:19;;19325:366;;;:::o;19697:419::-;19863:4;19901:2;19890:9;19886:18;19878:26;;19950:9;19944:4;19940:20;19936:1;19925:9;19921:17;19914:47;19978:131;20104:4;19978:131;:::i;:::-;19970:139;;19697:419;;;:::o;20122:237::-;20262:34;20258:1;20250:6;20246:14;20239:58;20331:20;20326:2;20318:6;20314:15;20307:45;20122:237;:::o;20365:366::-;20507:3;20528:67;20592:2;20587:3;20528:67;:::i;:::-;20521:74;;20604:93;20693:3;20604:93;:::i;:::-;20722:2;20717:3;20713:12;20706:19;;20365:366;;;:::o;20737:419::-;20903:4;20941:2;20930:9;20926:18;20918:26;;20990:9;20984:4;20980:20;20976:1;20965:9;20961:17;20954:47;21018:131;21144:4;21018:131;:::i;:::-;21010:139;;20737:419;;;:::o;21162:180::-;21210:77;21207:1;21200:88;21307:4;21304:1;21297:15;21331:4;21328:1;21321:15;21348:98;21399:6;21433:5;21427:12;21417:22;;21348:98;;;:::o;21452:168::-;21535:11;21569:6;21564:3;21557:19;21609:4;21604:3;21600:14;21585:29;;21452:168;;;;:::o;21626:373::-;21712:3;21740:38;21772:5;21740:38;:::i;:::-;21794:70;21857:6;21852:3;21794:70;:::i;:::-;21787:77;;21873:65;21931:6;21926:3;21919:4;21912:5;21908:16;21873:65;:::i;:::-;21963:29;21985:6;21963:29;:::i;:::-;21958:3;21954:39;21947:46;;21716:283;21626:373;;;;:::o;22005:640::-;22200:4;22238:3;22227:9;22223:19;22215:27;;22252:71;22320:1;22309:9;22305:17;22296:6;22252:71;:::i;:::-;22333:72;22401:2;22390:9;22386:18;22377:6;22333:72;:::i;:::-;22415;22483:2;22472:9;22468:18;22459:6;22415:72;:::i;:::-;22534:9;22528:4;22524:20;22519:2;22508:9;22504:18;22497:48;22562:76;22633:4;22624:6;22562:76;:::i;:::-;22554:84;;22005:640;;;;;;;:::o;22651:141::-;22707:5;22738:6;22732:13;22723:22;;22754:32;22780:5;22754:32;:::i;:::-;22651:141;;;;:::o;22798:349::-;22867:6;22916:2;22904:9;22895:7;22891:23;22887:32;22884:119;;;22922:79;;:::i;:::-;22884:119;23042:1;23067:63;23122:7;23113:6;23102:9;23098:22;23067:63;:::i;:::-;23057:73;;23013:127;22798:349;;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Address.sol": { + "Address": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201456f7767f46f239da11f81368573b480f6d8de2e2a321dadf5bcd65d1c39d7564736f6c63430008110033", + "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 EQ JUMP 0xF7 PUSH23 0x7F46F239DA11F81368573B480F6D8DE2E2A321DADF5BCD PUSH6 0xD1C39D756473 PUSH16 0x6C634300081100330000000000000000 ", + "sourceMap": "194:8964:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201456f7767f46f239da11f81368573b480f6d8de2e2a321dadf5bcd65d1c39d7564736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ JUMP 0xF7 PUSH23 0x7F46F239DA11F81368573B480F6D8DE2E2A321DADF5BCD PUSH6 0xD1C39D756473 PUSH16 0x6C634300081100330000000000000000 ", + "sourceMap": "194:8964:10:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"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.17+commit.8df45f5f\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Counters.sol": { + "Counters": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202bae9536ac7c538ee977f17079d929e640d7dab035bace3465e2b533fa3038ef64736f6c63430008110033", + "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 0x2B 0xAE SWAP6 CALLDATASIZE 0xAC PUSH29 0x538EE977F17079D929E640D7DAB035BACE3465E2B533FA3038EF64736F PUSH13 0x63430008110033000000000000 ", + "sourceMap": "424:971:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202bae9536ac7c538ee977f17079d929e640d7dab035bace3465e2b533fa3038ef64736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B 0xAE SWAP6 CALLDATASIZE 0xAC PUSH29 0x538EE977F17079D929E640D7DAB035BACE3465E2B533FA3038EF64736F PUSH13 0x63430008110033000000000000 ", + "sourceMap": "424:971:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205377adc79bb987de03049c655529acbf51a3f7d36bb14c89a2d2f790fee54d6064736f6c63430008110033", + "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 MSTORE8 PUSH24 0xADC79BB987DE03049C655529ACBF51A3F7D36BB14C89A2D2 0xF7 SWAP1 INVALID 0xE5 0x4D PUSH1 0x64 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "188:2065:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205377adc79bb987de03049c655529acbf51a3f7d36bb14c89a2d2f790fee54d6064736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE8 PUSH24 0xADC79BB987DE03049C655529ACBF51A3F7D36BB14C89A2D2 0xF7 SWAP1 INVALID 0xE5 0x4D PUSH1 0x64 PUSH20 0x6F6C634300081100330000000000000000000000 ", + "sourceMap": "188:2065:13:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"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.17+commit.8df45f5f\"},\"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); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"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.17+commit.8df45f5f\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200deb2d155cc73fbf04f3651b35566c36121307684f46e0e4f511e6d6a66133ad64736f6c63430008110033", + "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 0xD 0xEB 0x2D ISZERO 0x5C 0xC7 EXTCODEHASH 0xBF DIV RETURN PUSH6 0x1B35566C3612 SGT SMOD PUSH9 0x4F46E0E4F511E6D6A6 PUSH2 0x33AD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12302:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200deb2d155cc73fbf04f3651b35566c36121307684f46e0e4f511e6d6a66133ad64736f6c63430008110033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD 0xEB 0x2D ISZERO 0x5C 0xC7 EXTCODEHASH 0xBF DIV RETURN PUSH6 0x1B35566C3612 SGT SMOD PUSH9 0x4F46E0E4F511E6D6A6 PUSH2 0x33AD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "202:12302:16:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}" + } + }, + "contracts/ERC5725.sol": { + "ERC5725": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_payoutClaimed\":{\"details\":\"mapping for claimed payouts\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC5725.sol\":\"ERC5725\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]}},\"version\":1}" + } + }, + "contracts/IERC5725.sol": { + "IERC5725": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Because this standard relies on timestamps for the vesting schedule, it's important to keep track of the tokens claimed per Vesting NFT so that a user cannot withdraw more tokens than alloted for a specific Vesting NFT.\",\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"params\":{\"claimAmount\":\"The amount of tokens being claimed.\",\"recipient\":\"The address which is receiving the payout.\",\"tokenId\":\"the NFT tokenId of the assets being claimed.\"}}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"claim(uint256)\":{\"details\":\"MUST grant the claimablePayout value at the time of claim being called MUST revert if not called by the token owner or approved users MUST emit PayoutClaimed SHOULD revert if there is nothing to claim\",\"params\":{\"tokenId\":\"The NFT token id\"}},\"claimablePayout(uint256)\":{\"details\":\"It is RECOMMENDED that this is calculated as the `vestedPayout()` subtracted from `payoutClaimed()`.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The amount of unlocked payout tokens for the NFT which have not yet been claimed\"}},\"claimedPayout(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The total amount of payout tokens claimed for this NFT\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"payoutToken(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"token\":\"The token which is used to pay out the vesting claims\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"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.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"vestedPayout(uint256)\":{\"details\":\"It is RECOMMENDED that this function calls `vestedPayoutAtTime` with `block.timestamp` as the `timestamp` parameter.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"Total amount of tokens which have been vested at the current timestamp.\"}},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"`timestamp` MAY be both in the future and in the past. Zero MUST be returned if the timestamp is before the token was minted.\",\"params\":{\"timestamp\":\"The timestamp to check on, can be both in the past and the future\",\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"Total amount of tokens which have been vested at the provided timestamp\"}},\"vestingPayout(uint256)\":{\"details\":\"The sum of vestedPayout and vestingPayout SHOULD always be the total payout.\",\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"payout\":\"The number of tokens for the NFT which are vesting until a future date.\"}},\"vestingPeriod(uint256)\":{\"params\":{\"tokenId\":\"The NFT token id\"},\"returns\":{\"vestingEnd\":\"The ending of the vesting as a unix timestamp\",\"vestingStart\":\"The beginning of the vesting as a unix timestamp\"}}},\"title\":\"Non-Fungible Vesting Token Standard\",\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"claim(uint256)\":{\"notice\":\"Claim the pending payout for the NFT\"},\"claimablePayout(uint256)\":{\"notice\":\"Number of tokens for the NFT which can be claimed at the current timestamp\"},\"claimedPayout(uint256)\":{\"notice\":\"Number of tokens for the NFT which have been claimed at the current timestamp\"},\"payoutToken(uint256)\":{\"notice\":\"Token which is used to pay out the vesting claims\"},\"vestedPayout(uint256)\":{\"notice\":\"Total amount of tokens which have been vested at the current timestamp. This number also includes vested tokens which have been claimed.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"notice\":\"Total amount of vested tokens at the provided timestamp. This number also includes vested tokens which have been claimed.\"},\"vestingPayout(uint256)\":{\"notice\":\"Number of tokens for an NFT which are currently vesting.\"},\"vestingPeriod(uint256)\":{\"notice\":\"The start and end timestamps for the vesting of the provided NFT MUST return the timestamp where no further increase in vestedPayout occurs for `vestingEnd`.\"}},\"notice\":\"A non-fungible token standard used to vest tokens (EIP-20 or otherwise) over a vesting release curve scheduled using timestamps.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IERC5725.sol\":\"IERC5725\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]}},\"version\":1}" + } + }, + "contracts/mocks/ERC20Mock.sol": { + "ERC20Mock": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "supply_", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "decimals_", + "type": "uint8" + }, + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_157": { + "entryPoint": null, + "id": 157, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4108": { + "entryPoint": null, + "id": 4108, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_afterTokenTransfer_698": { + "entryPoint": 520, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 515, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_516": { + "entryPoint": 150, + "id": 516, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 923, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 998, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 581, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint8_fromMemory": { + "entryPoint": 643, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 1049, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2091, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 2270, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2130, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 2287, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 794, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 525, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 825, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1336, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1225, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2033, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 2211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1647, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 545, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1608, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1802, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 879, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1357, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1772, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 740, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1472, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1740, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 2164, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 1236, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 693, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1522, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 666, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 671, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 540, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 535, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 676, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1727, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1580, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 2050, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1386, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1532, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 555, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint8": { + "entryPoint": 617, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1575, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:11415:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:22", + "type": "" + } + ], + "src": "334:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:22" + }, + "nodeType": "YulIf", + "src": "470:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:22", + "type": "" + } + ], + "src": "417:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "608:80:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "618:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "633:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "627:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "618:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "649:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "649:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "649:33:22" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "586:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "594:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "602:5:22", + "type": "" + } + ], + "src": "545:143:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "737:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "747:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "762:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "769:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "758:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "758:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "747:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "719:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "729:7:22", + "type": "" + } + ], + "src": "694:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "827:77:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "882:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "891:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "894:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "884:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "884:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "884:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "850:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "873:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "857:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "857:22:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "847:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:33:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "840:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:41:22" + }, + "nodeType": "YulIf", + "src": "837:61:22" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "820:5:22", + "type": "" + } + ], + "src": "786:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "971:78:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "981:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "996:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "990:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "990:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "981:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1037:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "1012:24:22" + }, + "nodeType": "YulFunctionCall", + "src": "1012:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1012:31:22" + } + ] + }, + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "949:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "957:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "965:5:22", + "type": "" + } + ], + "src": "910:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1144:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1161:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1164:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1154:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1055:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1267:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1284:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1287:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1277:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1277:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1277:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "1178:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1349:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1359:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1377:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1384:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1373:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1373:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1393:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1389:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1389:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1369:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1369:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1359:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1332:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1342:6:22", + "type": "" + } + ], + "src": "1301:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1437:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1454:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1457:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1447:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1447:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1551:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1544:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1544:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1575:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1578:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1568:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1568:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1568:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1409:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1638:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1648:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1670:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1700:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1678:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1678:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1666:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1666:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1652:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1817:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1819:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1819:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1819:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1760:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1757:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1757:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1796:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1808:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1793:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1793:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1754:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1754:62:22" + }, + "nodeType": "YulIf", + "src": "1751:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1855:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1859:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1848:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1848:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1848:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1624:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1632:4:22", + "type": "" + } + ], + "src": "1595:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1923:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1933:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1943:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1943:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1933:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1992:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2000:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1972:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1972:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1972:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1907:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1916:6:22", + "type": "" + } + ], + "src": "1882:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2084:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2189:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2191:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "2191:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2191:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2161:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2169:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2158:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2158:30:22" + }, + "nodeType": "YulIf", + "src": "2155:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "2221:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2251:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2229:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "2229:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2221:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2295:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2307:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2313:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2303:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2303:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2295:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2079:4:22", + "type": "" + } + ], + "src": "2017:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2393:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2403:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2412:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2407:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2497:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2502:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2493:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2493:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2516:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2521:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2512:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2512:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2506:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2506:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2486:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2486:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2486:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2433:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2436:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2430:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2430:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2444:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2446:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2455:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2458:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2451:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2451:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2446:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2426:3:22", + "statements": [] + }, + "src": "2422:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2555:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2560:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2551:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2551:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2569:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2544:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2380:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2385:6:22", + "type": "" + } + ], + "src": "2331:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2678:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2688:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2755:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2713:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "2713:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2697:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "2697:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2688:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2779:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2786:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2772:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2772:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2772:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2802:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2817:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2824:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2813:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2813:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2806:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2867:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2869:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2869:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2869:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2848:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2853:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2844:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2844:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2862:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2841:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2841:25:22" + }, + "nodeType": "YulIf", + "src": "2838:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2994:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2999:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3004:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2959:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2959:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2651:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2656:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2664:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2672:5:22", + "type": "" + } + ], + "src": "2583:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3110:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3159:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3161:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3161:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3161:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3138:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3146:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3134:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3153:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3130:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3123:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3123:35:22" + }, + "nodeType": "YulIf", + "src": "3120:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3251:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3271:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3265:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3265:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3255:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3287:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3359:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3367:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3355:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3374:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3382:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3296:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "3296:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3287:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3088:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3096:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "3104:5:22", + "type": "" + } + ], + "src": "3037:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3544:1016:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3591:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3593:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3593:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3593:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3565:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3574:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3561:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3561:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3586:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3557:33:22" + }, + "nodeType": "YulIf", + "src": "3554:120:22" + }, + { + "nodeType": "YulBlock", + "src": "3684:128:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3699:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3713:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3703:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3728:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3774:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3785:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3770:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3794:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "3738:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "3738:64:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3728:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3822:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3837:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3851:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3841:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3867:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3911:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3922:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3907:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3907:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3931:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulIdentifier", + "src": "3877:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "3877:62:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3867:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3959:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3974:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3998:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4009:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3994:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3994:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3988:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3988:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3978:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4060:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4062:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4062:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4062:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4032:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4040:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4029:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4029:30:22" + }, + "nodeType": "YulIf", + "src": "4026:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "4157:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4213:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4224:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4209:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4209:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4233:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4167:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "4167:74:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4157:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4261:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4276:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4300:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4311:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4296:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4296:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4290:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4290:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4280:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4362:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4364:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4364:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4334:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4342:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4331:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4331:30:22" + }, + "nodeType": "YulIf", + "src": "4328:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "4459:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4515:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4526:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4511:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4511:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4535:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4469:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "4469:74:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4459:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3490:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3501:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3513:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3521:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3529:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3537:6:22", + "type": "" + } + ], + "src": "3398:1162:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4625:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4636:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4652:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4646:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4646:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4636:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4608:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4618:6:22", + "type": "" + } + ], + "src": "4566:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4699:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4716:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4719:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4709:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4709:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4709:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4813:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4816:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4806:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4806:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4806:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4840:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4830:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4830:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4830:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "4671:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4908:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4918:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4932:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4938:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4928:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4928:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4918:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4949:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4979:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4985:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4975:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "4953:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5040:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5054:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5062:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5050:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5050:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5040:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5006:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4999:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4999:26:22" + }, + "nodeType": "YulIf", + "src": "4996:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5129:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "5143:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5143:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5093:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5116:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5124:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5113:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5113:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5090:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5090:38:22" + }, + "nodeType": "YulIf", + "src": "5087:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4892:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4901:6:22", + "type": "" + } + ], + "src": "4857:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5237:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5247:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5255:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5247:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5275:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5278:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5268:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5268:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5268:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "5291:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5309:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5312:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "5299:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "5299:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5291:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5224:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5232:4:22", + "type": "" + } + ], + "src": "5183:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5374:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5384:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5402:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5409:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5398:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5398:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5394:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5394:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5384:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5357:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5367:6:22", + "type": "" + } + ], + "src": "5330:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5482:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5492:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "5517:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5523:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5513:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5513:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "5492:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "5457:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5463:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "5473:8:22", + "type": "" + } + ], + "src": "5429:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5618:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5628:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "5649:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5661:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "5645:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5645:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "5632:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5672:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5703:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5714:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5684:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "5684:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "5676:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5790:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5821:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5832:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5802:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "5802:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5790:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5850:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5863:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5874:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "5870:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5870:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5859:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5859:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5850:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5889:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5902:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5913:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5923:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5909:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5909:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "5899:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5899:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5889:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5579:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "5586:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "5598:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5611:6:22", + "type": "" + } + ], + "src": "5542:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5973:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5983:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5990:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5983:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5959:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5969:3:22", + "type": "" + } + ], + "src": "5941:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6067:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6077:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6135:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6117:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6117:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "6108:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "6108:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6090:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6090:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "6077:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6047:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "6057:9:22", + "type": "" + } + ], + "src": "6007:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6202:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6212:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6219:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6212:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6188:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6198:3:22", + "type": "" + } + ], + "src": "6155:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6312:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6322:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "6377:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6346:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "6346:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "6326:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6401:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6441:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "6435:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "6435:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6448:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "6480:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "6456:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "6456:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "6407:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "6407:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "6394:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6394:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6394:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6289:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6295:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "6303:7:22", + "type": "" + } + ], + "src": "6236:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6560:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6570:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6577:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6570:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6556:3:22", + "type": "" + } + ], + "src": "6511:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6643:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6653:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "6667:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "6667:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "6657:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6752:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6758:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "6766:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6708:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "6708:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6708:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6629:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6635:6:22", + "type": "" + } + ], + "src": "6590:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6835:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6902:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6946:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6953:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "6916:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "6916:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6916:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6855:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6862:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6852:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6852:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "6867:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6869:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6882:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6889:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6878:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6878:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6869:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "6849:2:22", + "statements": [] + }, + "src": "6845:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "6823:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6830:3:22", + "type": "" + } + ], + "src": "6785:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7056:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7082:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7096:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7144:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7112:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7112:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "7100:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7163:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7186:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7214:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7196:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "7196:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7182:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7182:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "7167:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7383:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7385:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7400:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7385:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7367:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7379:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7364:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7364:18:22" + }, + "nodeType": "YulIf", + "src": "7361:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7452:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7469:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7497:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7479:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "7479:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7465:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7465:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "7423:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "7423:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7423:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7073:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7078:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7070:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7070:11:22" + }, + "nodeType": "YulIf", + "src": "7067:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7032:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7039:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "7044:10:22", + "type": "" + } + ], + "src": "6977:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7589:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7599:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "7624:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7630:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "7620:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7620:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "7599:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "7564:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "7580:8:22", + "type": "" + } + ], + "src": "7526:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7700:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7710:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7759:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "7762:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7755:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7774:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7770:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "7726:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "7726:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7722:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7722:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "7714:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7787:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7801:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "7807:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7797:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7797:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "7787:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7677:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "7683:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "7693:6:22", + "type": "" + } + ], + "src": "7649:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7904:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8037:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8064:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8070:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8045:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8045:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8037:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8083:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8094:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8104:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8107:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8100:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8100:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "8083:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7885:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7891:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "7899:4:22", + "type": "" + } + ], + "src": "7823:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8215:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8226:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8273:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8240:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "8240:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "8230:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8362:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "8364:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "8364:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8364:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8334:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8342:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8331:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8331:30:22" + }, + "nodeType": "YulIf", + "src": "8328:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8394:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8440:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "8434:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8434:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "8408:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "8408:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "8398:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8539:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "8545:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8553:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8493:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "8493:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8493:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8570:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8587:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "8574:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8598:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8611:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8598:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8662:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8676:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8695:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8707:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "8703:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8703:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8691:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8691:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "8680:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8727:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8773:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8741:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "8741:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "8731:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8791:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8800:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "8795:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8859:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8884:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8902:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8907:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8898:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8892:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8892:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8877:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8877:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8877:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "8936:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8950:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8958:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8946:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8946:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8936:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8977:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8994:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9005:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8990:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8977:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8825:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8828:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8822:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8822:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8837:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8839:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8848:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8844:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8844:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8839:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8818:3:22", + "statements": [] + }, + "src": "8814:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9058:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9076:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9103:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9108:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9099:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9099:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9093:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "9093:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "9080:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "9143:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "9170:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9185:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9193:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9181:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9181:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "9151:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "9151:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9136:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9136:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9136:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "9041:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9050:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9038:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9038:19:22" + }, + "nodeType": "YulIf", + "src": "9035:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9234:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9248:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9256:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "9244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9244:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9260:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9240:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9227:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9227:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9227:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8655:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8660:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9290:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9304:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9317:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9308:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9341:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9359:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9378:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9383:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9374:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9374:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9368:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "9368:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9359:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9334:6:22" + }, + "nodeType": "YulIf", + "src": "9331:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9428:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9487:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9494:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "9434:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "9434:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9421:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9421:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9421:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "9282:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8635:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8643:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8632:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8632:14:22" + }, + "nodeType": "YulSwitch", + "src": "8625:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "8204:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8210:3:22", + "type": "" + } + ], + "src": "8123:1395:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9620:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9637:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9642:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9630:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9630:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9630:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "9658:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9677:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9682:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9673:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "9658:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9592:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "9597:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "9608:11:22", + "type": "" + } + ], + "src": "9524:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9805:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9827:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9835:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9823:14:22" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9839:33:22", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9816:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9816:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9816:57:22" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9797:6:22", + "type": "" + } + ], + "src": "9699:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10032:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10042:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10108:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10113:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10049:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "10049:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10042:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10214:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulIdentifier", + "src": "10125:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10125:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10125:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10227:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10238:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10243:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10234:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10227:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10020:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10028:3:22", + "type": "" + } + ], + "src": "9886:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10429:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10439:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10451:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10462:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10447:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10447:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10439:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10486:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10497:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10482:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10482:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10505:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10511:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10501:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10475:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10475:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10475:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10531:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10665:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10539:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10539:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10531:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10409:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10424:4:22", + "type": "" + } + ], + "src": "10258:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10711:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10728:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10731:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10721:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10721:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10721:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10825:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10828:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10818:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10818:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10818:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10849:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10852:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10842:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10842:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10842:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "10683:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10913:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10923:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10946:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10928:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10928:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10923:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10957:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10980:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10962:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10962:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10957:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10991:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11002:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "11005:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10998:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10998:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10991:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11031:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "11033:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "11033:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11033:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "11023:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "11026:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11020:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11020:10:22" + }, + "nodeType": "YulIf", + "src": "11017:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10900:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10903:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10909:3:22", + "type": "" + } + ], + "src": "10869:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11131:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11148:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11171:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11153:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "11153:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11141:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11141:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11141:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11119:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11126:3:22", + "type": "" + } + ], + "src": "11066:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11288:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11298:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11310:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11321:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11306:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11306:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11298:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11378:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11391:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11402:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11387:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11387:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11334:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "11334:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11334:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11260:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11272:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11283:4:22", + "type": "" + } + ], + "src": "11190:222:22" + } + ] + }, + "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_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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint8(value)\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 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 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_uint256t_uint8t_string_memory_ptrt_string_memory_ptr_fromMemory(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_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := 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 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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\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_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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162001d9038038062001d90833981810160405281019062000037919062000419565b818181600390816200004a91906200070a565b5080600490816200005c91906200070a565b5050506200007133856200009660201b60201c565b82600560006101000a81548160ff021916908360ff160217905550505050506200090c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000108576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ff9062000852565b60405180910390fd5b6200011c600083836200020360201b60201c565b8060026000828254620001309190620008a3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001e39190620008ef565b60405180910390a3620001ff600083836200020860201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620002368162000221565b81146200024257600080fd5b50565b60008151905062000256816200022b565b92915050565b600060ff82169050919050565b62000274816200025c565b81146200028057600080fd5b50565b600081519050620002948162000269565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002ef82620002a4565b810181811067ffffffffffffffff82111715620003115762000310620002b5565b5b80604052505050565b6000620003266200020d565b9050620003348282620002e4565b919050565b600067ffffffffffffffff821115620003575762000356620002b5565b5b6200036282620002a4565b9050602081019050919050565b60005b838110156200038f57808201518184015260208101905062000372565b60008484015250505050565b6000620003b2620003ac8462000339565b6200031a565b905082815260208101848484011115620003d157620003d06200029f565b5b620003de8482856200036f565b509392505050565b600082601f830112620003fe57620003fd6200029a565b5b8151620004108482602086016200039b565b91505092915050565b6000806000806080858703121562000436576200043562000217565b5b6000620004468782880162000245565b9450506020620004598782880162000283565b935050604085015167ffffffffffffffff8111156200047d576200047c6200021c565b5b6200048b87828801620003e6565b925050606085015167ffffffffffffffff811115620004af57620004ae6200021c565b5b620004bd87828801620003e6565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051c57607f821691505b602082108103620005325762000531620004d4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200059c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200055d565b620005a886836200055d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620005eb620005e5620005df8462000221565b620005c0565b62000221565b9050919050565b6000819050919050565b6200060783620005ca565b6200061f6200061682620005f2565b8484546200056a565b825550505050565b600090565b6200063662000627565b62000643818484620005fc565b505050565b5b818110156200066b576200065f6000826200062c565b60018101905062000649565b5050565b601f821115620006ba57620006848162000538565b6200068f846200054d565b810160208510156200069f578190505b620006b7620006ae856200054d565b83018262000648565b50505b505050565b600082821c905092915050565b6000620006df60001984600802620006bf565b1980831691505092915050565b6000620006fa8383620006cc565b9150826002028217905092915050565b6200071582620004c9565b67ffffffffffffffff811115620007315762000730620002b5565b5b6200073d825462000503565b6200074a8282856200066f565b600060209050601f8311600181146200078257600084156200076d578287015190505b620007798582620006ec565b865550620007e9565b601f198416620007928662000538565b60005b82811015620007bc5784890151825560018201915060208501945060208101905062000795565b86831015620007dc5784890151620007d8601f891682620006cc565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200083a601f83620007f1565b9150620008478262000802565b602082019050919050565b600060208201905081810360008301526200086d816200082b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008b08262000221565b9150620008bd8362000221565b9250828201905080821115620008d857620008d762000874565b5b92915050565b620008e98162000221565b82525050565b6000602082019050620009066000830184620008de565b92915050565b611474806200091c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806394bf804d146101d357806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ca5565b60405180910390f35b6100f160048036038101906100ec9190610d60565b61032f565b6040516100fe9190610dbb565b60405180910390f35b61010f610352565b60405161011c9190610de5565b60405180910390f35b61013f600480360381019061013a9190610e00565b61035c565b60405161014c9190610dbb565b60405180910390f35b61015d61038b565b60405161016a9190610e6f565b60405180910390f35b61018d60048036038101906101889190610d60565b6103a2565b60405161019a9190610dbb565b60405180910390f35b6101bd60048036038101906101b89190610e8a565b6103d9565b6040516101ca9190610de5565b60405180910390f35b6101ed60048036038101906101e89190610eb7565b610421565b005b6101f761042f565b6040516102049190610ca5565b60405180910390f35b61022760048036038101906102229190610d60565b6104c1565b6040516102349190610dbb565b60405180910390f35b61025760048036038101906102529190610d60565b610538565b6040516102649190610dbb565b60405180910390f35b61028760048036038101906102829190610ef7565b61055b565b6040516102949190610de5565b60405180910390f35b6060600380546102ac90610f66565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890610f66565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105e2565b90506103478185856105ea565b600191505092915050565b6000600254905090565b6000806103676105e2565b90506103748582856107b3565b61037f85858561083f565b60019150509392505050565b6000600560009054906101000a900460ff16905090565b6000806103ad6105e2565b90506103ce8185856103bf858961055b565b6103c99190610fc6565b6105ea565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61042b8183610ab5565b5050565b60606004805461043e90610f66565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90610f66565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105e2565b905060006104da828661055b565b90508381101561051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105169061106c565b60405180910390fd5b61052c82868684036105ea565b60019250505092915050565b6000806105436105e2565b905061055081858561083f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906110fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90611190565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107a69190610de5565b60405180910390a3505050565b60006107bf848461055b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610839578181101561082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906111fc565b60405180910390fd5b61083884848484036105ea565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a59061128e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611320565b60405180910390fd5b610928838383610c0b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906113b2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190610de5565b60405180910390a3610aaf848484610c10565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061141e565b60405180910390fd5b610b3060008383610c0b565b8060026000828254610b429190610fc6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf39190610de5565b60405180910390a3610c0760008383610c10565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c4f578082015181840152602081019050610c34565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c7782610c15565b610c818185610c20565b9350610c91818560208601610c31565b610c9a81610c5b565b840191505092915050565b60006020820190508181036000830152610cbf8184610c6c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cf782610ccc565b9050919050565b610d0781610cec565b8114610d1257600080fd5b50565b600081359050610d2481610cfe565b92915050565b6000819050919050565b610d3d81610d2a565b8114610d4857600080fd5b50565b600081359050610d5a81610d34565b92915050565b60008060408385031215610d7757610d76610cc7565b5b6000610d8585828601610d15565b9250506020610d9685828601610d4b565b9150509250929050565b60008115159050919050565b610db581610da0565b82525050565b6000602082019050610dd06000830184610dac565b92915050565b610ddf81610d2a565b82525050565b6000602082019050610dfa6000830184610dd6565b92915050565b600080600060608486031215610e1957610e18610cc7565b5b6000610e2786828701610d15565b9350506020610e3886828701610d15565b9250506040610e4986828701610d4b565b9150509250925092565b600060ff82169050919050565b610e6981610e53565b82525050565b6000602082019050610e846000830184610e60565b92915050565b600060208284031215610ea057610e9f610cc7565b5b6000610eae84828501610d15565b91505092915050565b60008060408385031215610ece57610ecd610cc7565b5b6000610edc85828601610d4b565b9250506020610eed85828601610d15565b9150509250929050565b60008060408385031215610f0e57610f0d610cc7565b5b6000610f1c85828601610d15565b9250506020610f2d85828601610d15565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f7e57607f821691505b602082108103610f9157610f90610f37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fd182610d2a565b9150610fdc83610d2a565b9250828201905080821115610ff457610ff3610f97565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611056602583610c20565b915061106182610ffa565b604082019050919050565b6000602082019050818103600083015261108581611049565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110e8602483610c20565b91506110f38261108c565b604082019050919050565b60006020820190508181036000830152611117816110db565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061117a602283610c20565b91506111858261111e565b604082019050919050565b600060208201905081810360008301526111a98161116d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006111e6601d83610c20565b91506111f1826111b0565b602082019050919050565b60006020820190508181036000830152611215816111d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611278602583610c20565b91506112838261121c565b604082019050919050565b600060208201905081810360008301526112a78161126b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061130a602383610c20565b9150611315826112ae565b604082019050919050565b60006020820190508181036000830152611339816112fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061139c602683610c20565b91506113a782611340565b604082019050919050565b600060208201905081810360008301526113cb8161138f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611408601f83610c20565b9150611413826113d2565b602082019050919050565b60006020820190508181036000830152611437816113fb565b905091905056fea264697066735822122056bb00867acafc81995b24f4c182eb7b3197d323b92e8b72d53757030b0a420164736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1D90 CODESIZE SUB DUP1 PUSH3 0x1D90 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x419 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x70A JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x70A JUMP JUMPDEST POP POP POP PUSH3 0x71 CALLER DUP6 PUSH3 0x96 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH3 0x90C JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x108 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xFF SWAP1 PUSH3 0x852 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x11C PUSH1 0x0 DUP4 DUP4 PUSH3 0x203 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x130 SWAP2 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x1E3 SWAP2 SWAP1 PUSH3 0x8EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x1FF PUSH1 0x0 DUP4 DUP4 PUSH3 0x208 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x236 DUP2 PUSH3 0x221 JUMP JUMPDEST DUP2 EQ PUSH3 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x256 DUP2 PUSH3 0x22B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x274 DUP2 PUSH3 0x25C JUMP JUMPDEST DUP2 EQ PUSH3 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x294 DUP2 PUSH3 0x269 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 PUSH3 0x2EF DUP3 PUSH3 0x2A4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x311 JUMPI PUSH3 0x310 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x20D JUMP JUMPDEST SWAP1 POP PUSH3 0x334 DUP3 DUP3 PUSH3 0x2E4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x357 JUMPI PUSH3 0x356 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x362 DUP3 PUSH3 0x2A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x38F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x372 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B2 PUSH3 0x3AC DUP5 PUSH3 0x339 JUMP JUMPDEST PUSH3 0x31A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x3D1 JUMPI PUSH3 0x3D0 PUSH3 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x3DE DUP5 DUP3 DUP6 PUSH3 0x36F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x3FE JUMPI PUSH3 0x3FD PUSH3 0x29A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x410 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x39B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x436 JUMPI PUSH3 0x435 PUSH3 0x217 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x446 DUP8 DUP3 DUP9 ADD PUSH3 0x245 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH3 0x459 DUP8 DUP3 DUP9 ADD PUSH3 0x283 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x47D JUMPI PUSH3 0x47C PUSH3 0x21C JUMP JUMPDEST JUMPDEST PUSH3 0x48B DUP8 DUP3 DUP9 ADD PUSH3 0x3E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4AF JUMPI PUSH3 0x4AE PUSH3 0x21C JUMP JUMPDEST JUMPDEST PUSH3 0x4BD DUP8 DUP3 DUP9 ADD PUSH3 0x3E6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 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 PUSH3 0x51C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x532 JUMPI PUSH3 0x531 PUSH3 0x4D4 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 PUSH3 0x59C PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x55D JUMP JUMPDEST PUSH3 0x5A8 DUP7 DUP4 PUSH3 0x55D 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 PUSH3 0x5EB PUSH3 0x5E5 PUSH3 0x5DF DUP5 PUSH3 0x221 JUMP JUMPDEST PUSH3 0x5C0 JUMP JUMPDEST PUSH3 0x221 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x607 DUP4 PUSH3 0x5CA JUMP JUMPDEST PUSH3 0x61F PUSH3 0x616 DUP3 PUSH3 0x5F2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x56A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x636 PUSH3 0x627 JUMP JUMPDEST PUSH3 0x643 DUP2 DUP5 DUP5 PUSH3 0x5FC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x66B JUMPI PUSH3 0x65F PUSH1 0x0 DUP3 PUSH3 0x62C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x649 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x6BA JUMPI PUSH3 0x684 DUP2 PUSH3 0x538 JUMP JUMPDEST PUSH3 0x68F DUP5 PUSH3 0x54D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x69F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x6B7 PUSH3 0x6AE DUP6 PUSH3 0x54D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x648 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 PUSH3 0x6DF PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x6BF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6FA DUP4 DUP4 PUSH3 0x6CC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x715 DUP3 PUSH3 0x4C9 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x731 JUMPI PUSH3 0x730 PUSH3 0x2B5 JUMP JUMPDEST JUMPDEST PUSH3 0x73D DUP3 SLOAD PUSH3 0x503 JUMP JUMPDEST PUSH3 0x74A DUP3 DUP3 DUP6 PUSH3 0x66F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x782 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x76D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x779 DUP6 DUP3 PUSH3 0x6EC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x7E9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x792 DUP7 PUSH3 0x538 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x7BC 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 PUSH3 0x795 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x7DC JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x7D8 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x6CC 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 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x83A PUSH1 0x1F DUP4 PUSH3 0x7F1 JUMP JUMPDEST SWAP2 POP PUSH3 0x847 DUP3 PUSH3 0x802 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 PUSH3 0x86D DUP2 PUSH3 0x82B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x8B0 DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP2 POP PUSH3 0x8BD DUP4 PUSH3 0x221 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x8D8 JUMPI PUSH3 0x8D7 PUSH3 0x874 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x8E9 DUP2 PUSH3 0x221 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x906 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x8DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1474 DUP1 PUSH3 0x91C 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 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x26D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x173 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10F PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15D PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x421 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F7 PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x538 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x294 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0xF66 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 0x2D8 SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x325 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x325 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 0x308 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x33A PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x347 DUP2 DUP6 DUP6 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x367 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x374 DUP6 DUP3 DUP6 PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x37F DUP6 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3AD PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CE DUP2 DUP6 DUP6 PUSH2 0x3BF DUP6 DUP10 PUSH2 0x55B JUMP JUMPDEST PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42B DUP2 DUP4 PUSH2 0xAB5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0xF66 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 0x46A SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4DA DUP3 DUP7 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x51F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x516 SWAP1 PUSH2 0x106C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x52C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x543 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x550 DUP2 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x650 SWAP1 PUSH2 0x10FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP1 PUSH2 0x1190 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP5 DUP5 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x839 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x822 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A5 SWAP1 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x914 SWAP1 PUSH2 0x1320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x928 DUP4 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x9AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A5 SWAP1 PUSH2 0x13B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA9C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAF DUP5 DUP5 DUP5 PUSH2 0xC10 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB1B SWAP1 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB30 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB42 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xC07 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC10 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC4F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xC34 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 0xC77 DUP3 PUSH2 0xC15 JUMP JUMPDEST PUSH2 0xC81 DUP2 DUP6 PUSH2 0xC20 JUMP JUMPDEST SWAP4 POP PUSH2 0xC91 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xC5B 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 0xCBF DUP2 DUP5 PUSH2 0xC6C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCF7 DUP3 PUSH2 0xCCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD07 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP2 EQ PUSH2 0xD12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD24 DUP2 PUSH2 0xCFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP2 EQ PUSH2 0xD48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD5A DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD77 JUMPI PUSH2 0xD76 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD85 DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD96 DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB5 DUP2 PUSH2 0xDA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDD0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDF DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE19 JUMPI PUSH2 0xE18 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xE38 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xE49 DUP7 DUP3 DUP8 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE69 DUP2 PUSH2 0xE53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEAE DUP5 DUP3 DUP6 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECD PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEDC DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEED DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF1C DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF2D DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xF7E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF91 JUMPI PUSH2 0xF90 PUSH2 0xF37 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP3 PUSH2 0xD2A JUMP JUMPDEST SWAP2 POP PUSH2 0xFDC DUP4 PUSH2 0xD2A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH2 0xFF3 PUSH2 0xF97 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1061 DUP3 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 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 0x1085 DUP2 PUSH2 0x1049 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E8 PUSH1 0x24 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x10F3 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x40 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 0x1117 DUP2 PUSH2 0x10DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117A PUSH1 0x22 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1185 DUP3 PUSH2 0x111E JUMP JUMPDEST PUSH1 0x40 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 0x11A9 DUP2 PUSH2 0x116D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E6 PUSH1 0x1D DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F1 DUP3 PUSH2 0x11B0 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 0x1215 DUP2 PUSH2 0x11D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1278 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1283 DUP3 PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 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 0x12A7 DUP2 PUSH2 0x126B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x130A PUSH1 0x23 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1315 DUP3 PUSH2 0x12AE JUMP JUMPDEST PUSH1 0x40 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 0x1339 DUP2 PUSH2 0x12FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139C PUSH1 0x26 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x13A7 DUP3 PUSH2 0x1340 JUMP JUMPDEST PUSH1 0x40 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 0x13CB DUP2 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH1 0x1F DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1413 DUP3 PUSH2 0x13D2 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 0x1437 DUP2 PUSH2 0x13FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0xBB STOP DUP7 PUSH27 0xCAFC81995B24F4C182EB7B3197D323B92E8B72D53757030B0A4201 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "118:483:19:-:0;;;182:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;316:5;323:7;2050:5:1;2042;:13;;;;;;:::i;:::-;;2075:7;2065;:17;;;;;;:::i;:::-;;1976:113;;342:26:19::1;348:10;360:7;342:5;;;:26;;:::i;:::-;390:9;378;;:21;;;;;;;;;;;;;;;;;;182:224:::0;;;;118:483;;8567:535:1;8669:1;8650:21;;:7;:21;;;8642:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:49;8747:1;8751:7;8760:6;8718:20;;;:49;;:::i;:::-;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;;;;;8968:6;8946:9;:18;8956:7;8946:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9020:7;8999:37;;9016:1;8999:37;;;9029:6;8999:37;;;;;;:::i;:::-;;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;;;:48;;:::i;:::-;8567:535;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:75:22:-;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:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:86::-;729:7;769:4;762:5;758:16;747:27;;694:86;;;:::o;786:118::-;857:22;873:5;857:22;:::i;:::-;850:5;847:33;837:61;;894:1;891;884:12;837:61;786:118;:::o;910:139::-;965:5;996:6;990:13;981:22;;1012:31;1037:5;1012:31;:::i;:::-;910:139;;;;:::o;1055:117::-;1164:1;1161;1154:12;1178:117;1287:1;1284;1277:12;1301:102;1342:6;1393:2;1389:7;1384:2;1377:5;1373:14;1369:28;1359:38;;1301:102;;;:::o;1409:180::-;1457:77;1454:1;1447:88;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1595:281;1678:27;1700:4;1678:27;:::i;:::-;1670:6;1666:40;1808:6;1796:10;1793:22;1772:18;1760:10;1757:34;1754:62;1751:88;;;1819:18;;:::i;:::-;1751:88;1859:10;1855:2;1848:22;1638:238;1595:281;;:::o;1882:129::-;1916:6;1943:20;;:::i;:::-;1933:30;;1972:33;2000:4;1992:6;1972:33;:::i;:::-;1882:129;;;:::o;2017:308::-;2079:4;2169:18;2161:6;2158:30;2155:56;;;2191:18;;:::i;:::-;2155:56;2229:29;2251:6;2229:29;:::i;:::-;2221:37;;2313:4;2307;2303:15;2295:23;;2017:308;;;:::o;2331:246::-;2412:1;2422:113;2436:6;2433:1;2430:13;2422:113;;;2521:1;2516:3;2512:11;2506:18;2502:1;2497:3;2493:11;2486:39;2458:2;2455:1;2451:10;2446:15;;2422:113;;;2569:1;2560:6;2555:3;2551:16;2544:27;2393:184;2331:246;;;:::o;2583:434::-;2672:5;2697:66;2713:49;2755:6;2713:49;:::i;:::-;2697:66;:::i;:::-;2688:75;;2786:6;2779:5;2772:21;2824:4;2817:5;2813:16;2862:3;2853:6;2848:3;2844:16;2841:25;2838:112;;;2869:79;;:::i;:::-;2838:112;2959:52;3004:6;2999:3;2994;2959:52;:::i;:::-;2678:339;2583:434;;;;;:::o;3037:355::-;3104:5;3153:3;3146:4;3138:6;3134:17;3130:27;3120:122;;3161:79;;:::i;:::-;3120:122;3271:6;3265:13;3296:90;3382:3;3374:6;3367:4;3359:6;3355:17;3296:90;:::i;:::-;3287:99;;3110:282;3037:355;;;;:::o;3398:1162::-;3513:6;3521;3529;3537;3586:3;3574:9;3565:7;3561:23;3557:33;3554:120;;;3593:79;;:::i;:::-;3554:120;3713:1;3738:64;3794:7;3785:6;3774:9;3770:22;3738:64;:::i;:::-;3728:74;;3684:128;3851:2;3877:62;3931:7;3922:6;3911:9;3907:22;3877:62;:::i;:::-;3867:72;;3822:127;4009:2;3998:9;3994:18;3988:25;4040:18;4032:6;4029:30;4026:117;;;4062:79;;:::i;:::-;4026:117;4167:74;4233:7;4224:6;4213:9;4209:22;4167:74;:::i;:::-;4157:84;;3959:292;4311:2;4300:9;4296:18;4290:25;4342:18;4334:6;4331:30;4328:117;;;4364:79;;:::i;:::-;4328:117;4469:74;4535:7;4526:6;4515:9;4511:22;4469:74;:::i;:::-;4459:84;;4261:292;3398:1162;;;;;;;:::o;4566:99::-;4618:6;4652:5;4646:12;4636:22;;4566:99;;;:::o;4671:180::-;4719:77;4716:1;4709:88;4816:4;4813:1;4806:15;4840:4;4837:1;4830:15;4857:320;4901:6;4938:1;4932:4;4928:12;4918:22;;4985:1;4979:4;4975:12;5006:18;4996:81;;5062:4;5054:6;5050:17;5040:27;;4996:81;5124:2;5116:6;5113:14;5093:18;5090:38;5087:84;;5143:18;;:::i;:::-;5087:84;4908:269;4857:320;;;:::o;5183:141::-;5232:4;5255:3;5247:11;;5278:3;5275:1;5268:14;5312:4;5309:1;5299:18;5291:26;;5183:141;;;:::o;5330:93::-;5367:6;5414:2;5409;5402:5;5398:14;5394:23;5384:33;;5330:93;;;:::o;5429:107::-;5473:8;5523:5;5517:4;5513:16;5492:37;;5429:107;;;;:::o;5542:393::-;5611:6;5661:1;5649:10;5645:18;5684:97;5714:66;5703:9;5684:97;:::i;:::-;5802:39;5832:8;5821:9;5802:39;:::i;:::-;5790:51;;5874:4;5870:9;5863:5;5859:21;5850:30;;5923:4;5913:8;5909:19;5902:5;5899:30;5889:40;;5618:317;;5542:393;;;;;:::o;5941:60::-;5969:3;5990:5;5983:12;;5941:60;;;:::o;6007:142::-;6057:9;6090:53;6108:34;6117:24;6135:5;6117:24;:::i;:::-;6108:34;:::i;:::-;6090:53;:::i;:::-;6077:66;;6007:142;;;:::o;6155:75::-;6198:3;6219:5;6212:12;;6155:75;;;:::o;6236:269::-;6346:39;6377:7;6346:39;:::i;:::-;6407:91;6456:41;6480:16;6456:41;:::i;:::-;6448:6;6441:4;6435:11;6407:91;:::i;:::-;6401:4;6394:105;6312:193;6236:269;;;:::o;6511:73::-;6556:3;6511:73;:::o;6590:189::-;6667:32;;:::i;:::-;6708:65;6766:6;6758;6752:4;6708:65;:::i;:::-;6643:136;6590:189;;:::o;6785:186::-;6845:120;6862:3;6855:5;6852:14;6845:120;;;6916:39;6953:1;6946:5;6916:39;:::i;:::-;6889:1;6882:5;6878:13;6869:22;;6845:120;;;6785:186;;:::o;6977:543::-;7078:2;7073:3;7070:11;7067:446;;;7112:38;7144:5;7112:38;:::i;:::-;7196:29;7214:10;7196:29;:::i;:::-;7186:8;7182:44;7379:2;7367:10;7364:18;7361:49;;;7400:8;7385:23;;7361:49;7423:80;7479:22;7497:3;7479:22;:::i;:::-;7469:8;7465:37;7452:11;7423:80;:::i;:::-;7082:431;;7067:446;6977:543;;;:::o;7526:117::-;7580:8;7630:5;7624:4;7620:16;7599:37;;7526:117;;;;:::o;7649:169::-;7693:6;7726:51;7774:1;7770:6;7762:5;7759:1;7755:13;7726:51;:::i;:::-;7722:56;7807:4;7801;7797:15;7787:25;;7700:118;7649:169;;;;:::o;7823:295::-;7899:4;8045:29;8070:3;8064:4;8045:29;:::i;:::-;8037:37;;8107:3;8104:1;8100:11;8094:4;8091:21;8083:29;;7823:295;;;;:::o;8123:1395::-;8240:37;8273:3;8240:37;:::i;:::-;8342:18;8334:6;8331:30;8328:56;;;8364:18;;:::i;:::-;8328:56;8408:38;8440:4;8434:11;8408:38;:::i;:::-;8493:67;8553:6;8545;8539:4;8493:67;:::i;:::-;8587:1;8611:4;8598:17;;8643:2;8635:6;8632:14;8660:1;8655:618;;;;9317:1;9334:6;9331:77;;;9383:9;9378:3;9374:19;9368:26;9359:35;;9331:77;9434:67;9494:6;9487:5;9434:67;:::i;:::-;9428:4;9421:81;9290:222;8625:887;;8655:618;8707:4;8703:9;8695:6;8691:22;8741:37;8773:4;8741:37;:::i;:::-;8800:1;8814:208;8828:7;8825:1;8822:14;8814:208;;;8907:9;8902:3;8898:19;8892:26;8884:6;8877:42;8958:1;8950:6;8946:14;8936:24;;9005:2;8994:9;8990:18;8977:31;;8851:4;8848:1;8844:12;8839:17;;8814:208;;;9050:6;9041:7;9038:19;9035:179;;;9108:9;9103:3;9099:19;9093:26;9151:48;9193:4;9185:6;9181:17;9170:9;9151:48;:::i;:::-;9143:6;9136:64;9058:156;9035:179;9260:1;9256;9248:6;9244:14;9240:22;9234:4;9227:36;8662:611;;;8625:887;;8215:1303;;;8123:1395;;:::o;9524:169::-;9608:11;9642:6;9637:3;9630:19;9682:4;9677:3;9673:14;9658:29;;9524:169;;;;:::o;9699:181::-;9839:33;9835:1;9827:6;9823:14;9816:57;9699:181;:::o;9886:366::-;10028:3;10049:67;10113:2;10108:3;10049:67;:::i;:::-;10042:74;;10125:93;10214:3;10125:93;:::i;:::-;10243:2;10238:3;10234:12;10227:19;;9886:366;;;:::o;10258:419::-;10424:4;10462:2;10451:9;10447:18;10439:26;;10511:9;10505:4;10501:20;10497:1;10486:9;10482:17;10475:47;10539:131;10665:4;10539:131;:::i;:::-;10531:139;;10258:419;;;:::o;10683:180::-;10731:77;10728:1;10721:88;10828:4;10825:1;10818:15;10852:4;10849:1;10842:15;10869:191;10909:3;10928:20;10946:1;10928:20;:::i;:::-;10923:25;;10962:20;10980:1;10962:20;:::i;:::-;10957:25;;11005:1;11002;10998:9;10991:16;;11026:3;11023:1;11020:10;11017:36;;;11033:18;;:::i;:::-;11017:36;10869:191;;;;:::o;11066:118::-;11153:24;11171:5;11153:24;:::i;:::-;11148:3;11141:37;11066:118;;:::o;11190:222::-;11283:4;11321:2;11310:9;11306:18;11298:26;;11334:71;11402:1;11391:9;11387:17;11378:6;11334:71;:::i;:::-;11190:222;;;;:::o;118:483:19:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_698": { + "entryPoint": 3088, + "id": 698, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_633": { + "entryPoint": 1514, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_687": { + "entryPoint": 3083, + "id": 687, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_516": { + "entryPoint": 2741, + "id": 516, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 1506, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_676": { + "entryPoint": 1971, + "id": 676, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_459": { + "entryPoint": 2111, + "id": 459, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_254": { + "entryPoint": 1371, + "id": 254, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_279": { + "entryPoint": 815, + "id": 279, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_211": { + "entryPoint": 985, + "id": 211, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_4130": { + "entryPoint": 907, + "id": 4130, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_382": { + "entryPoint": 1217, + "id": 382, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_341": { + "entryPoint": 930, + "id": 341, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_4121": { + "entryPoint": 1057, + "id": 4121, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_167": { + "entryPoint": 669, + "id": 167, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_177": { + "entryPoint": 1071, + "id": 177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_197": { + "entryPoint": 850, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_312": { + "entryPoint": 860, + "id": 312, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_236": { + "entryPoint": 1336, + "id": 236, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3349, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3403, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3722, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3831, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3584, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3424, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": 3767, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3500, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3180, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4861, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4461, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4569, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5007, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4715, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4315, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4169, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5115, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3542, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3680, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3515, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3237, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4496, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5042, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5150, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3557, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3093, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3104, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4038, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3308, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3488, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3276, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3121, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3942, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3991, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3895, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3271, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4782, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 4382, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 4528, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4928, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4636, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 4236, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 5074, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3326, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3380, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:15163:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:22", + "type": "" + } + ], + "src": "7:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:22", + "type": "" + } + ], + "src": "112:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:22", + "statements": [] + }, + "src": "378:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:22", + "type": "" + } + ], + "src": "287:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:22", + "type": "" + } + ], + "src": "539:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:22", + "type": "" + } + ], + "src": "647:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:22", + "type": "" + } + ], + "src": "1030:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:22", + "type": "" + } + ], + "src": "1349:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:22", + "type": "" + } + ], + "src": "1676:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:22", + "type": "" + } + ], + "src": "1808:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:22" + }, + "nodeType": "YulIf", + "src": "1963:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:22", + "type": "" + } + ], + "src": "1910:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:22", + "type": "" + } + ], + "src": "2038:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:22", + "type": "" + } + ], + "src": "2183:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:22" + }, + "nodeType": "YulIf", + "src": "2319:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:22", + "type": "" + } + ], + "src": "2266:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:22", + "type": "" + } + ], + "src": "2394:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:22" + }, + "nodeType": "YulIf", + "src": "2632:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:22", + "type": "" + } + ], + "src": "2539:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:22", + "type": "" + } + ], + "src": "3019:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:22", + "type": "" + } + ], + "src": "3115:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:22", + "type": "" + } + ], + "src": "3230:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:22", + "type": "" + } + ], + "src": "3446:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:22", + "type": "" + } + ], + "src": "3570:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:22" + }, + "nodeType": "YulIf", + "src": "3908:119:22" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:22", + "type": "" + } + ], + "src": "3798:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:22", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:22", + "type": "" + } + ], + "src": "4423:86:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:22" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:22", + "type": "" + } + ], + "src": "4515:112:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:22" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:22", + "type": "" + } + ], + "src": "4633:214:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:22" + }, + "nodeType": "YulIf", + "src": "4929:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:22", + "type": "" + } + ], + "src": "4853:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:22" + }, + "nodeType": "YulIf", + "src": "5281:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5464:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:22", + "type": "" + } + ], + "src": "5188:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5751:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5797:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5799:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "5799:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5799:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5772:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5781:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5768:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5768:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5793:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5764:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5764:32:22" + }, + "nodeType": "YulIf", + "src": "5761:119:22" + }, + { + "nodeType": "YulBlock", + "src": "5890:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5905:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5919:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5909:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5934:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5969:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5980:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5965:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5989:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5944:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "5944:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5934:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6017:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6032:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6046:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6036:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6062:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6097:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6108:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6093:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6093:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6117:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6072:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6072:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6062:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5713:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5724:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5736:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5744:6:22", + "type": "" + } + ], + "src": "5668:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6176:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6193:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6196:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6186:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6186:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6186:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6290:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6293:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6283:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6283:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6283:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6314:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6307:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6307:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6148:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6385:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6395:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6409:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6415:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6405:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6405:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6395:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6426:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6456:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6452:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6452:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6430:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6503:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6517:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6531:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6539:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6527:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6527:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6517:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6483:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6476:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:26:22" + }, + "nodeType": "YulIf", + "src": "6473:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6606:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6620:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "6620:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6620:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6570:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6593:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6601:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6590:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6590:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6567:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6567:38:22" + }, + "nodeType": "YulIf", + "src": "6564:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6369:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6378:6:22", + "type": "" + } + ], + "src": "6334:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6688:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6705:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6708:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6698:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6698:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6698:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6802:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6805:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6795:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6795:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6795:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6829:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6819:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "6819:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6819:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6660:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6890:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6900:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6923:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6905:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6905:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6900:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6934:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6957:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6939:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6939:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6934:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6968:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6979:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6982:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6975:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "6968:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7010:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7010:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7010:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7000:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7003:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6997:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6997:10:22" + }, + "nodeType": "YulIf", + "src": "6994:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "6877:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "6880:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "6886:3:22", + "type": "" + } + ], + "src": "6846:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7149:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7171:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7179:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7167:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7167:14:22" + }, + { + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7183:34:22", + "type": "", + "value": "ERC20: decreased allowance below" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7160:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7160:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7160:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7239:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7247:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7235:15:22" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7252:7:22", + "type": "", + "value": " zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7228:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7228:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7228:32:22" + } + ] + }, + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7141:6:22", + "type": "" + } + ], + "src": "7043:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7419:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7429:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7495:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7500:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7436:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "7436:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7429:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7601:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nodeType": "YulIdentifier", + "src": "7512:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "7512:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7512:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "7614:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7625:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7630:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7621:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7621:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7614:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7407:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7415:3:22", + "type": "" + } + ], + "src": "7273:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7816:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7826:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7838:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7849:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7834:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7834:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7873:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7884:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7869:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7869:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7892:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7898:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7888:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7888:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7862:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7862:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7862:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "7918:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8052:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7926:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "7926:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7918:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7796:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7811:4:22", + "type": "" + } + ], + "src": "7645:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8176:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8198:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8206:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8194:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8194:14:22" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8210:34:22", + "type": "", + "value": "ERC20: approve from the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8187:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8187:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8266:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8274:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8262:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8262:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8279:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8255:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8255:31:22" + } + ] + }, + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8168:6:22", + "type": "" + } + ], + "src": "8070:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8445:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8455:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8521:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8526:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8462:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "8462:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8455:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8627:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nodeType": "YulIdentifier", + "src": "8538:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "8538:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8538:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "8640:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8651:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8656:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8647:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8647:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8640:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8433:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8441:3:22", + "type": "" + } + ], + "src": "8299:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8842:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8852:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8864:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8875:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8860:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8860:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8852:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8899:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8910:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8895:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8895:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8918:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8924:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8914:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8914:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8888:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8888:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8888:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "8944:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9078:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8952:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "8952:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8944:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8822:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8837:4:22", + "type": "" + } + ], + "src": "8671:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9202:115:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9224:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9232:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9220:14:22" + }, + { + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9236:34:22", + "type": "", + "value": "ERC20: approve to the zero addre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9213:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9213:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9213:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9292:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9300:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9288:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9288:15:22" + }, + { + "hexValue": "7373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9305:4:22", + "type": "", + "value": "ss" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9281:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9281:29:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9281:29:22" + } + ] + }, + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9194:6:22", + "type": "" + } + ], + "src": "9096:221:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9469:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9479:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9545:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9550:2:22", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9486:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "9486:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9479:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9651:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nodeType": "YulIdentifier", + "src": "9562:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "9562:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9562:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "9664:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9675:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9680:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9671:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9671:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9664:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9457:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9465:3:22", + "type": "" + } + ], + "src": "9323:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9866:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9876:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9888:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9884:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9884:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9876:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9923:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9934:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9919:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9919:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9942:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9948:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9938:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9938:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9912:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9912:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9912:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "9968:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10102:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9976:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "9976:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9968:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9846:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9861:4:22", + "type": "" + } + ], + "src": "9695:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10226:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10248:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10256:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10244:14:22" + }, + { + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10260:31:22", + "type": "", + "value": "ERC20: insufficient allowance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10237:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10237:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10237:55:22" + } + ] + }, + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10218:6:22", + "type": "" + } + ], + "src": "10120:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10451:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10461:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10527:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10532:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10468:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "10468:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10461:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10633:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nodeType": "YulIdentifier", + "src": "10544:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "10544:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10544:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "10646:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10657:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10662:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10653:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10653:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10646:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10439:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10447:3:22", + "type": "" + } + ], + "src": "10305:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10848:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10858:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10870:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10881:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10866:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10866:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10858:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10905:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10916:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10901:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10901:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10924:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10930:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10920:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10920:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10894:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10894:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10894:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "10950:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11084:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10958:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "10958:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10950:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10828:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10843:4:22", + "type": "" + } + ], + "src": "10677:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11208:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11230:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11238:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11226:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11226:14:22" + }, + { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11242:34:22", + "type": "", + "value": "ERC20: transfer from the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11219:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11219:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11219:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11298:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11306:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11294:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11294:15:22" + }, + { + "hexValue": "6472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11311:7:22", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11287:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11287:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11287:32:22" + } + ] + }, + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11200:6:22", + "type": "" + } + ], + "src": "11102:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11478:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11488:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11554:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11559:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11495:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "11495:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11488:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11660:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nodeType": "YulIdentifier", + "src": "11571:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "11571:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11571:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "11673:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11684:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11689:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11680:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11680:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11673:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11466:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11474:3:22", + "type": "" + } + ], + "src": "11332:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11875:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11885:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11897:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11908:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11893:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11893:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11885:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11932:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11943:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11928:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11928:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11951:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11957:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11947:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11947:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11921:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11921:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11921:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "11977:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12111:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11985:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "11985:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11977:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11855:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11870:4:22", + "type": "" + } + ], + "src": "11704:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12235:116:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12257:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12265:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12253:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12253:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12269:34:22", + "type": "", + "value": "ERC20: transfer to the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12246:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12246:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12246:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12325:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12333:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12321:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12321:15:22" + }, + { + "hexValue": "657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12338:5:22", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12314:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12314:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12314:30:22" + } + ] + }, + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12227:6:22", + "type": "" + } + ], + "src": "12129:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12503:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12513:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12579:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12584:2:22", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12520:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "12520:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12513:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12685:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nodeType": "YulIdentifier", + "src": "12596:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "12596:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12596:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "12698:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12709:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12714:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12705:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12698:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12491:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12499:3:22", + "type": "" + } + ], + "src": "12357:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12900:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12910:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12922:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12933:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12918:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12910:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12968:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12953:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12976:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12972:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12946:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12946:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12946:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "13002:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13136:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13010:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "13010:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13002:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12880:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12895:4:22", + "type": "" + } + ], + "src": "12729:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13260:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13282:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13290:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13278:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13278:14:22" + }, + { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13294:34:22", + "type": "", + "value": "ERC20: transfer amount exceeds b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13271:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13271:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13271:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13350:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13358:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13346:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13346:15:22" + }, + { + "hexValue": "616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13363:8:22", + "type": "", + "value": "alance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13339:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13339:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13339:33:22" + } + ] + }, + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13252:6:22", + "type": "" + } + ], + "src": "13154:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13531:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13541:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13607:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13612:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13548:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "13548:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13541:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13713:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nodeType": "YulIdentifier", + "src": "13624:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "13624:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13624:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "13726:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13737:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13742:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13733:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13733:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13726:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13519:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13527:3:22", + "type": "" + } + ], + "src": "13385:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13928:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13938:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13950:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13961:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13946:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13946:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13938:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13985:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13996:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13981:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13981:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14004:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14010:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14000:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13974:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "13974:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13974:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "14030:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14164:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14038:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "14038:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14030:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13908:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13923:4:22", + "type": "" + } + ], + "src": "13757:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14288:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14310:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14318:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14306:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14306:14:22" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14322:33:22", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14299:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14299:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14299:57:22" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14280:6:22", + "type": "" + } + ], + "src": "14182:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14515:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14525:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14591:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14596:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14532:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "14532:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14525:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14697:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nodeType": "YulIdentifier", + "src": "14608:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "14608:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14608:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "14710:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14721:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14726:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14717:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14717:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14710:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14503:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14511:3:22", + "type": "" + } + ], + "src": "14369:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14912:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14922:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14934:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14945:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14930:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14930:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14922:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14965:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14988:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14994:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14984:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14984:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14958:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14958:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14958:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15014:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15148:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15022:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15022:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15014:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14892:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14907:4:22", + "type": "" + } + ], + "src": "14741:419:22" + } + ] + }, + "contents": "{\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 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 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 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 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_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 abi_decode_tuple_t_addresst_addresst_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_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 function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_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_uint256(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_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 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 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 store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__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_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__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_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__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_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__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_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__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_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__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_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__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_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806394bf804d146101d357806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ca5565b60405180910390f35b6100f160048036038101906100ec9190610d60565b61032f565b6040516100fe9190610dbb565b60405180910390f35b61010f610352565b60405161011c9190610de5565b60405180910390f35b61013f600480360381019061013a9190610e00565b61035c565b60405161014c9190610dbb565b60405180910390f35b61015d61038b565b60405161016a9190610e6f565b60405180910390f35b61018d60048036038101906101889190610d60565b6103a2565b60405161019a9190610dbb565b60405180910390f35b6101bd60048036038101906101b89190610e8a565b6103d9565b6040516101ca9190610de5565b60405180910390f35b6101ed60048036038101906101e89190610eb7565b610421565b005b6101f761042f565b6040516102049190610ca5565b60405180910390f35b61022760048036038101906102229190610d60565b6104c1565b6040516102349190610dbb565b60405180910390f35b61025760048036038101906102529190610d60565b610538565b6040516102649190610dbb565b60405180910390f35b61028760048036038101906102829190610ef7565b61055b565b6040516102949190610de5565b60405180910390f35b6060600380546102ac90610f66565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890610f66565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105e2565b90506103478185856105ea565b600191505092915050565b6000600254905090565b6000806103676105e2565b90506103748582856107b3565b61037f85858561083f565b60019150509392505050565b6000600560009054906101000a900460ff16905090565b6000806103ad6105e2565b90506103ce8185856103bf858961055b565b6103c99190610fc6565b6105ea565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61042b8183610ab5565b5050565b60606004805461043e90610f66565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90610f66565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105e2565b905060006104da828661055b565b90508381101561051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105169061106c565b60405180910390fd5b61052c82868684036105ea565b60019250505092915050565b6000806105436105e2565b905061055081858561083f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906110fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf90611190565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107a69190610de5565b60405180910390a3505050565b60006107bf848461055b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610839578181101561082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906111fc565b60405180910390fd5b61083884848484036105ea565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a59061128e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490611320565b60405180910390fd5b610928838383610c0b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906113b2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190610de5565b60405180910390a3610aaf848484610c10565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061141e565b60405180910390fd5b610b3060008383610c0b565b8060026000828254610b429190610fc6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bf39190610de5565b60405180910390a3610c0760008383610c10565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c4f578082015181840152602081019050610c34565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c7782610c15565b610c818185610c20565b9350610c91818560208601610c31565b610c9a81610c5b565b840191505092915050565b60006020820190508181036000830152610cbf8184610c6c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cf782610ccc565b9050919050565b610d0781610cec565b8114610d1257600080fd5b50565b600081359050610d2481610cfe565b92915050565b6000819050919050565b610d3d81610d2a565b8114610d4857600080fd5b50565b600081359050610d5a81610d34565b92915050565b60008060408385031215610d7757610d76610cc7565b5b6000610d8585828601610d15565b9250506020610d9685828601610d4b565b9150509250929050565b60008115159050919050565b610db581610da0565b82525050565b6000602082019050610dd06000830184610dac565b92915050565b610ddf81610d2a565b82525050565b6000602082019050610dfa6000830184610dd6565b92915050565b600080600060608486031215610e1957610e18610cc7565b5b6000610e2786828701610d15565b9350506020610e3886828701610d15565b9250506040610e4986828701610d4b565b9150509250925092565b600060ff82169050919050565b610e6981610e53565b82525050565b6000602082019050610e846000830184610e60565b92915050565b600060208284031215610ea057610e9f610cc7565b5b6000610eae84828501610d15565b91505092915050565b60008060408385031215610ece57610ecd610cc7565b5b6000610edc85828601610d4b565b9250506020610eed85828601610d15565b9150509250929050565b60008060408385031215610f0e57610f0d610cc7565b5b6000610f1c85828601610d15565b9250506020610f2d85828601610d15565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f7e57607f821691505b602082108103610f9157610f90610f37565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610fd182610d2a565b9150610fdc83610d2a565b9250828201905080821115610ff457610ff3610f97565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611056602583610c20565b915061106182610ffa565b604082019050919050565b6000602082019050818103600083015261108581611049565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110e8602483610c20565b91506110f38261108c565b604082019050919050565b60006020820190508181036000830152611117816110db565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061117a602283610c20565b91506111858261111e565b604082019050919050565b600060208201905081810360008301526111a98161116d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006111e6601d83610c20565b91506111f1826111b0565b602082019050919050565b60006020820190508181036000830152611215816111d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611278602583610c20565b91506112838261121c565b604082019050919050565b600060208201905081810360008301526112a78161126b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061130a602383610c20565b9150611315826112ae565b604082019050919050565b60006020820190508181036000830152611339816112fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061139c602683610c20565b91506113a782611340565b604082019050919050565b600060208201905081810360008301526113cb8161138f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611408601f83610c20565b9150611413826113d2565b602082019050919050565b60006020820190508181036000830152611437816113fb565b905091905056fea264697066735822122056bb00867acafc81995b24f4c182eb7b3197d323b92e8b72d53757030b0a420164736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x26D JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x173 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10F PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15D PUSH2 0x38B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B8 SWAP2 SWAP1 PUSH2 0xE8A JUMP JUMPDEST PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0xEB7 JUMP JUMPDEST PUSH2 0x421 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F7 PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x204 SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x227 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x222 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x234 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x257 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x252 SWAP2 SWAP1 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x538 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x264 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x55B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x294 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0xF66 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 0x2D8 SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x325 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x325 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 0x308 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x33A PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x347 DUP2 DUP6 DUP6 PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x367 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x374 DUP6 DUP3 DUP6 PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x37F DUP6 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3AD PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CE DUP2 DUP6 DUP6 PUSH2 0x3BF DUP6 DUP10 PUSH2 0x55B JUMP JUMPDEST PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42B DUP2 DUP4 PUSH2 0xAB5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0xF66 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 0x46A SWAP1 PUSH2 0xF66 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4CC PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4DA DUP3 DUP7 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x51F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x516 SWAP1 PUSH2 0x106C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x52C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x543 PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH2 0x550 DUP2 DUP6 DUP6 PUSH2 0x83F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 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 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x650 SWAP1 PUSH2 0x10FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP1 PUSH2 0x1190 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 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BF DUP5 DUP5 PUSH2 0x55B JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x839 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x82B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x822 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5EA JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A5 SWAP1 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x914 SWAP1 PUSH2 0x1320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x928 DUP4 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 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 0x9AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A5 SWAP1 PUSH2 0x13B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA9C SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xAAF DUP5 DUP5 DUP5 PUSH2 0xC10 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB1B SWAP1 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB30 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB42 SWAP2 SWAP1 PUSH2 0xFC6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xBF3 SWAP2 SWAP1 PUSH2 0xDE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xC07 PUSH1 0x0 DUP4 DUP4 PUSH2 0xC10 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC4F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xC34 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 0xC77 DUP3 PUSH2 0xC15 JUMP JUMPDEST PUSH2 0xC81 DUP2 DUP6 PUSH2 0xC20 JUMP JUMPDEST SWAP4 POP PUSH2 0xC91 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC31 JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xC5B 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 0xCBF DUP2 DUP5 PUSH2 0xC6C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCF7 DUP3 PUSH2 0xCCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD07 DUP2 PUSH2 0xCEC JUMP JUMPDEST DUP2 EQ PUSH2 0xD12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD24 DUP2 PUSH2 0xCFE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP2 EQ PUSH2 0xD48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD5A DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD77 JUMPI PUSH2 0xD76 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD85 DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD96 DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB5 DUP2 PUSH2 0xDA0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDD0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDF DUP2 PUSH2 0xD2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE19 JUMPI PUSH2 0xE18 PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE27 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xE38 DUP7 DUP3 DUP8 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xE49 DUP7 DUP3 DUP8 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE69 DUP2 PUSH2 0xE53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEAE DUP5 DUP3 DUP6 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECD PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEDC DUP6 DUP3 DUP7 ADD PUSH2 0xD4B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEED DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF0E JUMPI PUSH2 0xF0D PUSH2 0xCC7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF1C DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF2D DUP6 DUP3 DUP7 ADD PUSH2 0xD15 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0xF7E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF91 JUMPI PUSH2 0xF90 PUSH2 0xF37 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP3 PUSH2 0xD2A JUMP JUMPDEST SWAP2 POP PUSH2 0xFDC DUP4 PUSH2 0xD2A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH2 0xFF3 PUSH2 0xF97 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1056 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1061 DUP3 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 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 0x1085 DUP2 PUSH2 0x1049 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E8 PUSH1 0x24 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x10F3 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x40 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 0x1117 DUP2 PUSH2 0x10DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x117A PUSH1 0x22 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1185 DUP3 PUSH2 0x111E JUMP JUMPDEST PUSH1 0x40 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 0x11A9 DUP2 PUSH2 0x116D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E6 PUSH1 0x1D DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F1 DUP3 PUSH2 0x11B0 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 0x1215 DUP2 PUSH2 0x11D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1278 PUSH1 0x25 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1283 DUP3 PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 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 0x12A7 DUP2 PUSH2 0x126B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x130A PUSH1 0x23 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1315 DUP3 PUSH2 0x12AE JUMP JUMPDEST PUSH1 0x40 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 0x1339 DUP2 PUSH2 0x12FD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139C PUSH1 0x26 DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x13A7 DUP3 PUSH2 0x1340 JUMP JUMPDEST PUSH1 0x40 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 0x13CB DUP2 PUSH2 0x138F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH1 0x1F DUP4 PUSH2 0xC20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1413 DUP3 PUSH2 0x13D2 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 0x1437 DUP2 PUSH2 0x13FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMP 0xBB STOP DUP7 PUSH27 0xCAFC81995B24F4C182EB7B3197D323B92E8B72D53757030B0A4201 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "118:483:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3242:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;501:98:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5871:234:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:83:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2365:102:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3974:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2154:98;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;4530:13;4546:12;:10;:12::i;:::-;4530:28;;4568:32;4577:5;4584:7;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;:::o;3242:106::-;3303:7;3329:12;;3322:19;;3242:106;:::o;5190:286::-;5317:4;5333:15;5351:12;:10;:12::i;:::-;5333:30;;5373:38;5389:4;5395:7;5404:6;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;5465:4;5458:11;;;5190:286;;;;;:::o;501:98:19:-;559:5;583:9;;;;;;;;;;;576:16;;501:98;:::o;5871:234:1:-;5959:4;5975:13;5991:12;:10;:12::i;:::-;5975:28;;6013:64;6022:5;6029:7;6066:10;6038:25;6048:5;6055:7;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;:::-;6094:4;6087:11;;;5871:234;;;;:::o;3406:125::-;3480:7;3506:9;:18;3516:7;3506:18;;;;;;;;;;;;;;;;3499:25;;3406:125;;;:::o;412:83:19:-;471:17;477:2;481:6;471:5;:17::i;:::-;412:83;;:::o;2365:102:1:-;2421:13;2453:7;2446:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:102;:::o;6592:427::-;6685:4;6701:13;6717:12;:10;:12::i;:::-;6701:28;;6739:24;6766:25;6776:5;6783:7;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;:::-;7008:4;7001:11;;;;6592:427;;;;:::o;3727:189::-;3806:4;3822:13;3838:12;:10;:12::i;:::-;3822:28;;3860;3870:5;3877:2;3881:6;3860:9;:28::i;:::-;3905:4;3898:11;;;3727:189;;;;:::o;3974:149::-;4063:7;4089:11;:18;4101:5;4089:18;;;;;;;;;;;;;;;:27;4108:7;4089:27;;;;;;;;;;;;;;;;4082:34;;3974:149;;;;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;10504:370:1:-;10652:1;10635:19;;:5;:19;;;10627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:1;10713:21;;:7;:21;;;10705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:6;10784:11;:18;10796:5;10784:18;;;;;;;;;;;;;;;:27;10803:7;10784:27;;;;;;;;;;;;;;;:36;;;;10851:7;10835:32;;10844:5;10835:32;;;10860:6;10835:32;;;;;;:::i;:::-;;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;11371:17;11351:16;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11347:243;11275:321;11155:441;;;:::o;7473:818::-;7615:1;7599:18;;:4;:18;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7691:1;7677:16;;:2;:16;;;7669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:38;7765:4;7771:2;7775:6;7744:20;:38::i;:::-;7793:19;7815:9;:15;7825:4;7815:15;;;;;;;;;;;;;;;;7793:37;;7863:6;7848:11;:21;;7840:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7978:6;7964:11;:20;7946:9;:15;7956:4;7946:15;;;;;;;;;;;;;;;:38;;;;8178:6;8161:9;:13;8171:2;8161:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8225:2;8210:26;;8219:4;8210:26;;;8229:6;8210:26;;;;;;:::i;:::-;;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;:::-;7581:710;7473:818;;;:::o;8567:535::-;8669:1;8650:21;;:7;:21;;;8642:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:49;8747:1;8751:7;8760:6;8718:20;:49::i;:::-;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;;;;;8968:6;8946:9;:18;8956:7;8946:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9020:7;8999:37;;9016:1;8999:37;;;9029:6;8999:37;;;;;;:::i;:::-;;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;:::-;8567:535;;:::o;12180:121::-;;;;:::o;12889:120::-;;;;:::o;7:99:22:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:::-;5736:6;5744;5793:2;5781:9;5772:7;5768:23;5764:32;5761:119;;;5799:79;;:::i;:::-;5761:119;5919:1;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5890:117;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5668:474;;;;;:::o;6148:180::-;6196:77;6193:1;6186:88;6293:4;6290:1;6283:15;6317:4;6314:1;6307:15;6334:320;6378:6;6415:1;6409:4;6405:12;6395:22;;6462:1;6456:4;6452:12;6483:18;6473:81;;6539:4;6531:6;6527:17;6517:27;;6473:81;6601:2;6593:6;6590:14;6570:18;6567:38;6564:84;;6620:18;;:::i;:::-;6564:84;6385:269;6334:320;;;:::o;6660:180::-;6708:77;6705:1;6698:88;6805:4;6802:1;6795:15;6829:4;6826:1;6819:15;6846:191;6886:3;6905:20;6923:1;6905:20;:::i;:::-;6900:25;;6939:20;6957:1;6939:20;:::i;:::-;6934:25;;6982:1;6979;6975:9;6968:16;;7003:3;7000:1;6997:10;6994:36;;;7010:18;;:::i;:::-;6994:36;6846:191;;;;:::o;7043:224::-;7183:34;7179:1;7171:6;7167:14;7160:58;7252:7;7247:2;7239:6;7235:15;7228:32;7043:224;:::o;7273:366::-;7415:3;7436:67;7500:2;7495:3;7436:67;:::i;:::-;7429:74;;7512:93;7601:3;7512:93;:::i;:::-;7630:2;7625:3;7621:12;7614:19;;7273:366;;;:::o;7645:419::-;7811:4;7849:2;7838:9;7834:18;7826:26;;7898:9;7892:4;7888:20;7884:1;7873:9;7869:17;7862:47;7926:131;8052:4;7926:131;:::i;:::-;7918:139;;7645:419;;;:::o;8070:223::-;8210:34;8206:1;8198:6;8194:14;8187:58;8279:6;8274:2;8266:6;8262:15;8255:31;8070:223;:::o;8299:366::-;8441:3;8462:67;8526:2;8521:3;8462:67;:::i;:::-;8455:74;;8538:93;8627:3;8538:93;:::i;:::-;8656:2;8651:3;8647:12;8640:19;;8299:366;;;:::o;8671:419::-;8837:4;8875:2;8864:9;8860:18;8852:26;;8924:9;8918:4;8914:20;8910:1;8899:9;8895:17;8888:47;8952:131;9078:4;8952:131;:::i;:::-;8944:139;;8671:419;;;:::o;9096:221::-;9236:34;9232:1;9224:6;9220:14;9213:58;9305:4;9300:2;9292:6;9288:15;9281:29;9096:221;:::o;9323:366::-;9465:3;9486:67;9550:2;9545:3;9486:67;:::i;:::-;9479:74;;9562:93;9651:3;9562:93;:::i;:::-;9680:2;9675:3;9671:12;9664:19;;9323:366;;;:::o;9695:419::-;9861:4;9899:2;9888:9;9884:18;9876:26;;9948:9;9942:4;9938:20;9934:1;9923:9;9919:17;9912:47;9976:131;10102:4;9976:131;:::i;:::-;9968:139;;9695:419;;;:::o;10120:179::-;10260:31;10256:1;10248:6;10244:14;10237:55;10120:179;:::o;10305:366::-;10447:3;10468:67;10532:2;10527:3;10468:67;:::i;:::-;10461:74;;10544:93;10633:3;10544:93;:::i;:::-;10662:2;10657:3;10653:12;10646:19;;10305:366;;;:::o;10677:419::-;10843:4;10881:2;10870:9;10866:18;10858:26;;10930:9;10924:4;10920:20;10916:1;10905:9;10901:17;10894:47;10958:131;11084:4;10958:131;:::i;:::-;10950:139;;10677:419;;;:::o;11102:224::-;11242:34;11238:1;11230:6;11226:14;11219:58;11311:7;11306:2;11298:6;11294:15;11287:32;11102:224;:::o;11332:366::-;11474:3;11495:67;11559:2;11554:3;11495:67;:::i;:::-;11488:74;;11571:93;11660:3;11571:93;:::i;:::-;11689:2;11684:3;11680:12;11673:19;;11332:366;;;:::o;11704:419::-;11870:4;11908:2;11897:9;11893:18;11885:26;;11957:9;11951:4;11947:20;11943:1;11932:9;11928:17;11921:47;11985:131;12111:4;11985:131;:::i;:::-;11977:139;;11704:419;;;:::o;12129:222::-;12269:34;12265:1;12257:6;12253:14;12246:58;12338:5;12333:2;12325:6;12321:15;12314:30;12129:222;:::o;12357:366::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:419::-;12895:4;12933:2;12922:9;12918:18;12910:26;;12982:9;12976:4;12972:20;12968:1;12957:9;12953:17;12946:47;13010:131;13136:4;13010:131;:::i;:::-;13002:139;;12729:419;;;:::o;13154:225::-;13294:34;13290:1;13282:6;13278:14;13271:58;13363:8;13358:2;13350:6;13346:15;13339:33;13154:225;:::o;13385:366::-;13527:3;13548:67;13612:2;13607:3;13548:67;:::i;:::-;13541:74;;13624:93;13713:3;13624:93;:::i;:::-;13742:2;13737:3;13733:12;13726:19;;13385:366;;;:::o;13757:419::-;13923:4;13961:2;13950:9;13946:18;13938:26;;14010:9;14004:4;14000:20;13996:1;13985:9;13981:17;13974:47;14038:131;14164:4;14038:131;:::i;:::-;14030:139;;13757:419;;;:::o;14182:181::-;14322:33;14318:1;14310:6;14306:14;14299:57;14182:181;:::o;14369:366::-;14511:3;14532:67;14596:2;14591:3;14532:67;:::i;:::-;14525:74;;14608:93;14697:3;14608:93;:::i;:::-;14726:2;14721:3;14717:12;14710:19;;14369:366;;;:::o;14741:419::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14994:9;14988:4;14984:20;14980:1;14969:9;14965:17;14958:47;15022:131;15148:4;15022:131;:::i;:::-;15014:139;;14741:419;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "mint(uint256,address)": "94bf804d", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supply_\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/mocks/ERC20Mock.sol\":{\"keccak256\":\"0x3958216dec86564705d3cfd1961b1d74262df77cc13f77fe93b41da7bf865409\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1503f798b3338965b60142ee549acdaef8911af223a3f1fbd0fb90968bbe695\",\"dweb:/ipfs/QmV3KeGGMoURmdm2QAHxM5TaoyxzB8svt35TpR9a3j31fi\"]}},\"version\":1}" + } + }, + "contracts/reference/LinearVestingNFT.sol": { + "LinearVestingNFT": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "duration", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4177": { + "entryPoint": null, + "id": 4177, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 380, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 455, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 506, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 251, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 103, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 282, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1071, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 336, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 697, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1164, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 946, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 123, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 128, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 118, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 113, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 133, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 787, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1004, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 800, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 956, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 999, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162004306380380620043068339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613d4580620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4306 CODESIZE SUB DUP1 PUSH3 0x4306 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1FA JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP POP POP POP POP PUSH3 0x5B1 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 PUSH3 0xD0 DUP3 PUSH3 0x85 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xF2 JUMPI PUSH3 0xF1 PUSH3 0x96 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x107 PUSH3 0x67 JUMP JUMPDEST SWAP1 POP PUSH3 0x115 DUP3 DUP3 PUSH3 0xC5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x138 JUMPI PUSH3 0x137 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x143 DUP3 PUSH3 0x85 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x170 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x153 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x193 PUSH3 0x18D DUP5 PUSH3 0x11A JUMP JUMPDEST PUSH3 0xFB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1B2 JUMPI PUSH3 0x1B1 PUSH3 0x80 JUMP JUMPDEST JUMPDEST PUSH3 0x1BF DUP5 DUP3 DUP6 PUSH3 0x150 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DF JUMPI PUSH3 0x1DE PUSH3 0x7B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1F1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x17C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x214 JUMPI PUSH3 0x213 PUSH3 0x71 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x235 JUMPI PUSH3 0x234 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x243 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x267 JUMPI PUSH3 0x266 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x275 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2D2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E8 JUMPI PUSH3 0x2E7 PUSH3 0x28A 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 PUSH3 0x352 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x313 JUMP JUMPDEST PUSH3 0x35E DUP7 DUP4 PUSH3 0x313 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 PUSH3 0x3AB PUSH3 0x3A5 PUSH3 0x39F DUP5 PUSH3 0x376 JUMP JUMPDEST PUSH3 0x380 JUMP JUMPDEST PUSH3 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C7 DUP4 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x3DF PUSH3 0x3D6 DUP3 PUSH3 0x3B2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x320 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F6 PUSH3 0x3E7 JUMP JUMPDEST PUSH3 0x403 DUP2 DUP5 DUP5 PUSH3 0x3BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x42B JUMPI PUSH3 0x41F PUSH1 0x0 DUP3 PUSH3 0x3EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x409 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x47A JUMPI PUSH3 0x444 DUP2 PUSH3 0x2EE JUMP JUMPDEST PUSH3 0x44F DUP5 PUSH3 0x303 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x477 PUSH3 0x46E DUP6 PUSH3 0x303 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x408 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 PUSH3 0x49F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47F JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4BA DUP4 DUP4 PUSH3 0x48C JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D5 DUP3 PUSH3 0x27F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4F1 JUMPI PUSH3 0x4F0 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x4FD DUP3 SLOAD PUSH3 0x2B9 JUMP JUMPDEST PUSH3 0x50A DUP3 DUP3 DUP6 PUSH3 0x42F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x542 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x52D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x539 DUP6 DUP3 PUSH3 0x4AC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x552 DUP7 PUSH3 0x2EE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x57C 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 PUSH3 0x555 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x59C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x598 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x48C 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 PUSH2 0x3D45 DUP1 PUSH3 0x5C1 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 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81D0526D GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xC196F42F EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x467 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C7 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x81D0526D EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3E3 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BE PUSH2 0x61B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x256 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0xA2A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP3 SWAP2 SWAP1 PUSH2 0x2ABA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x2AE3 JUMP JUMPDEST PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x34F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x2B57 JUMP JUMPDEST PUSH2 0xE2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x435 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x430 SWAP2 SWAP1 PUSH2 0x2DB9 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x451 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45E SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x2E46 JUMP JUMPDEST PUSH2 0x124C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48E SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AC SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x1327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DC SWAP2 SWAP1 PUSH2 0x2E86 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0x13CE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x62A SWAP1 PUSH2 0x2EF5 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 0x656 SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x678 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A3 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 0x686 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B8 DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FE DUP3 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x76E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x765 SWAP1 PUSH2 0x2F98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x78D PUSH2 0x14FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x7BC JUMPI POP PUSH2 0x7BB DUP2 PUSH2 0x7B6 PUSH2 0x14FB JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST JUMPDEST PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x302A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x805 DUP4 DUP4 PUSH2 0x1503 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x81B PUSH2 0x815 PUSH2 0x14FB JUMP JUMPDEST DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x851 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x865 DUP4 DUP4 DUP4 PUSH2 0x1651 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x874 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x8B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8AA SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8D3 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x920 SWAP1 PUSH2 0x3194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x934 DUP4 PUSH2 0xDB3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x979 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x970 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9EB SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA25 CALLER DUP3 PUSH2 0xA00 DUP7 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x198B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA57 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xA96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8D SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0xAA8 DUP6 PUSH2 0x1A5F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xABE DUP4 PUSH2 0x1AAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x3361 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBFB DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xC3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC31 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC43 DUP4 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xC4C DUP5 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC6A DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA0 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCD1 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xD10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD07 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP4 PUSH2 0x1B0A JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD30 SWAP1 PUSH2 0x2EF5 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 0xD5C SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA9 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 0xD8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xDBF DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF5 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE1B DUP5 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xE25 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE3F PUSH2 0xE38 PUSH2 0x14FB JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1B4A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE54 PUSH2 0xE4E PUSH2 0x14FB JUMP JUMPDEST DUP4 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8A SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE9F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST TIMESTAMP DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xEFA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF1 SWAP1 PUSH2 0x3401 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF69 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF60 SWAP1 PUSH2 0x346D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0xFD0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFC7 SWAP1 PUSH2 0x34FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP8 PUSH2 0x1028 SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP8 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1197 SWAP1 PUSH2 0x3563 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11A6 DUP8 DUP3 PUSH2 0x1D12 JUMP JUMPDEST PUSH2 0x11DB CALLER ADDRESS DUP9 PUSH2 0x11B5 DUP6 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1F2F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11EF DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F9 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1244 JUMP JUMPDEST DUP1 PUSH2 0x1223 DUP5 PUSH2 0x1FCF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x35E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1258 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x1297 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x128E SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12A0 DUP5 PUSH2 0x209D JUMP JUMPDEST DUP4 LT ISZERO PUSH2 0x12B0 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12B9 DUP5 PUSH2 0x1A5F JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12C9 DUP5 PUSH2 0x1AEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12D9 DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0x12E2 DUP6 PUSH2 0x1A5F JUMP JUMPDEST PUSH2 0x12EC SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x12F5 DUP6 PUSH2 0x1A11 JUMP JUMPDEST DUP5 PUSH2 0x1300 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x1309 DUP7 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0x1313 SWAP2 SWAP1 PUSH2 0x360B JUMP JUMPDEST PUSH2 0x131D SWAP2 SWAP1 PUSH2 0x367C JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1333 DUP3 TIMESTAMP PUSH2 0x124C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1499 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x14A9 JUMPI POP PUSH2 0x14A8 DUP3 PUSH2 0x20EB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14B9 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x14F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14EF SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1576 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C8 DUP4 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x160A JUMPI POP PUSH2 0x1609 DUP2 DUP6 PUSH2 0x133A JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1648 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1630 DUP5 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1671 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16BE SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1736 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x172D SWAP1 PUSH2 0x37B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1743 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1763 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B0 SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1945 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x196C DUP4 PUSH2 0x1AAD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A0C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x19AA SWAP3 SWAP2 SWAP1 PUSH2 0x37D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BAF SWAP1 PUSH2 0x3846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1CA9 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1CC1 DUP5 DUP5 DUP5 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x1CCD DUP5 DUP5 DUP5 DUP5 PUSH2 0x2228 JUMP JUMPDEST PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D78 SWAP1 PUSH2 0x3944 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8A DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC1 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1DD8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST PUSH2 0x1DE1 DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E18 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F2B PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1F50 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FDE DUP5 PUSH2 0x23AF JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x2BA1 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 0x202F 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 0x2092 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x2086 JUMPI PUSH2 0x2085 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x203D JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21C3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2502 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2223 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21E3 SWAP2 SWAP1 PUSH2 0x3A1C JUMP JUMPDEST PUSH2 0x2222 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2219 SWAP1 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2249 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x251A JUMP JUMPDEST ISZERO PUSH2 0x23A2 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x2272 PUSH2 0x14FB JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2294 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B30 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x22D0 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 0x22CD SWAP2 SWAP1 PUSH2 0x3B91 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2352 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2300 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 0x2305 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x234A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2341 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x23A7 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x240D JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x244A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2440 JUMPI PUSH2 0x243F PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2479 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x246F JUMPI PUSH2 0x246E PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x24A2 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x24C7 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x24BD JUMPI PUSH2 0x24BC PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x24EA JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24F9 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2511 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x253D JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2582 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2579 SWAP1 PUSH2 0x3C30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25AB SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25E8 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 0x25ED JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x25FE DUP8 DUP4 DUP4 DUP8 PUSH2 0x260A JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x266C JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x2664 JUMPI PUSH2 0x2624 DUP6 PUSH2 0x251A JUMP JUMPDEST PUSH2 0x2663 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x265A SWAP1 PUSH2 0x3CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x2676 DUP4 DUP4 PUSH2 0x267F JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x2692 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C6 SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2718 DUP2 PUSH2 0x26E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2735 DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2751 JUMPI PUSH2 0x2750 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275F DUP5 DUP3 DUP6 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x277D DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2798 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2774 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP2 EQ PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27CE DUP2 PUSH2 0x27A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27EA JUMPI PUSH2 0x27E9 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27F8 DUP5 DUP3 DUP6 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH2 0x2841 PUSH2 0x283C DUP5 PUSH2 0x2801 JUMP JUMPDEST PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2858 DUP3 PUSH2 0x282B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286A DUP3 PUSH2 0x284D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287A DUP2 PUSH2 0x285F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2889 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B4 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x28CF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x28DC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x28E9 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x28F6 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x2903 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28AB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2947 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x292C 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 0x296F DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x2979 DUP2 DUP6 PUSH2 0x2918 JUMP JUMPDEST SWAP4 POP PUSH2 0x2989 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x2992 DUP2 PUSH2 0x2953 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 0x29B7 DUP2 DUP5 PUSH2 0x2964 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29CA DUP3 PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29DA DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A04 DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP2 EQ PUSH2 0x2A0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A21 DUP2 PUSH2 0x29FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A3E JUMPI PUSH2 0x2A3D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A4C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A5D DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP7 DUP3 DUP8 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x2ADC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AF9 JUMPI PUSH2 0x2AF8 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B07 DUP5 DUP3 DUP6 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2B25 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B34 DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B51 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6E JUMPI PUSH2 0x2B6D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8D DUP6 DUP3 DUP7 ADD PUSH2 0x2B42 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD9 DUP3 PUSH2 0x2953 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF7 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0B PUSH2 0x26CF JUMP JUMPDEST SWAP1 POP PUSH2 0x2C17 DUP3 DUP3 PUSH2 0x2BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C37 JUMPI PUSH2 0x2C36 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST PUSH2 0x2C40 DUP3 PUSH2 0x2953 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 0x2C6F PUSH2 0x2C6A DUP5 PUSH2 0x2C1C JUMP JUMPDEST PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2C8B JUMPI PUSH2 0x2C8A PUSH2 0x2B9C JUMP JUMPDEST JUMPDEST PUSH2 0x2C96 DUP5 DUP3 DUP6 PUSH2 0x2C4D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CB3 JUMPI PUSH2 0x2CB2 PUSH2 0x2B97 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CC3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2CE6 JUMPI PUSH2 0x2CE5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CF4 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2D05 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2D16 DUP8 DUP3 DUP9 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D37 JUMPI PUSH2 0x2D36 PUSH2 0x26DE JUMP JUMPDEST JUMPDEST PUSH2 0x2D43 DUP8 DUP3 DUP9 ADD PUSH2 0x2C9E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2D58 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP2 EQ PUSH2 0x2D63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D75 DUP2 PUSH2 0x2D4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D86 DUP3 PUSH2 0x29BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D96 DUP2 PUSH2 0x2D7B JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2DB3 DUP2 PUSH2 0x2D8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI PUSH2 0x2DD5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2DE4 DUP10 DUP3 DUP11 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2DF5 DUP10 DUP3 DUP11 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2E06 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2E17 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2E28 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2E39 DUP10 DUP3 DUP11 ADD PUSH2 0x2DA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E5D JUMPI PUSH2 0x2E5C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E6B DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E7C DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E9D JUMPI PUSH2 0x2E9C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EAB DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2EBC DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2F0D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2F20 JUMPI PUSH2 0x2F1F PUSH2 0x2EC6 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F82 PUSH1 0x21 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F8D DUP3 PUSH2 0x2F26 JUMP JUMPDEST PUSH1 0x40 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 0x2FB1 DUP2 PUSH2 0x2F75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3014 PUSH1 0x3D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x301F DUP3 PUSH2 0x2FB8 JUMP JUMPDEST PUSH1 0x40 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 0x3043 DUP2 PUSH2 0x3007 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A6 PUSH1 0x2D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x30B1 DUP3 PUSH2 0x304A JUMP JUMPDEST PUSH1 0x40 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 0x30D5 DUP2 PUSH2 0x3099 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3112 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x311D DUP3 PUSH2 0x30DC 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 0x3141 DUP2 PUSH2 0x3105 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317E PUSH1 0x10 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3189 DUP3 PUSH2 0x3148 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 0x31AD DUP2 PUSH2 0x3171 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EA PUSH1 0x1A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x31F5 DUP3 PUSH2 0x31B4 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 0x3219 DUP2 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325A DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3265 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x327D JUMPI PUSH2 0x327C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B9 PUSH1 0x18 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x32C4 DUP3 PUSH2 0x3283 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 0x32E8 DUP2 PUSH2 0x32AC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334B PUSH1 0x29 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3356 DUP3 PUSH2 0x32EF JUMP JUMPDEST PUSH1 0x40 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 0x337A DUP2 PUSH2 0x333E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338C DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3397 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x33AF JUMPI PUSH2 0x33AE PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x737461727454696D652063616E6E6F74206265206F6E20746865207061737400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33EB PUSH1 0x1F DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F6 DUP3 PUSH2 0x33B5 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 0x341A DUP2 PUSH2 0x33DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x16 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3462 DUP3 PUSH2 0x3421 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 0x3486 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6475726174696F6E206E6565647320746F206265206D6F7265207468616E2063 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C69666600000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34E9 PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F4 DUP3 PUSH2 0x348D JUMP JUMPDEST PUSH1 0x40 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 0x3518 DUP2 PUSH2 0x34DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352A DUP3 PUSH2 0x288F JUMP JUMPDEST SWAP2 POP PUSH2 0x3535 DUP4 PUSH2 0x288F JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x355D JUMPI PUSH2 0x355C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356E DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x35A0 JUMPI PUSH2 0x359F PUSH2 0x3220 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C1 DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x35CB DUP2 DUP6 PUSH2 0x35AB JUMP JUMPDEST SWAP4 POP PUSH2 0x35DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35F3 DUP3 DUP6 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP PUSH2 0x35FF DUP3 DUP5 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3616 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3621 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x362F DUP2 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3646 JUMPI PUSH2 0x3645 PUSH2 0x3220 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3687 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3692 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x36A2 JUMPI PUSH2 0x36A1 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3709 PUSH1 0x25 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3714 DUP3 PUSH2 0x36AD JUMP JUMPDEST PUSH1 0x40 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 0x3738 DUP2 PUSH2 0x36FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379B PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x37A6 DUP3 PUSH2 0x373F JUMP JUMPDEST PUSH1 0x40 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 0x37CA DUP2 PUSH2 0x378E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x37E6 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x37F3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3830 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x383B DUP3 PUSH2 0x37FA 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 0x385F DUP2 PUSH2 0x3823 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C2 PUSH1 0x32 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x38CD DUP3 PUSH2 0x3866 JUMP JUMPDEST PUSH1 0x40 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 0x38F1 DUP2 PUSH2 0x38B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x392E PUSH1 0x20 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3939 DUP3 PUSH2 0x38F8 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 0x395D DUP2 PUSH2 0x3921 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x399A PUSH1 0x1C DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x39A5 DUP3 PUSH2 0x3964 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 0x39C9 DUP2 PUSH2 0x398D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x39E5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3A16 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A32 JUMPI PUSH2 0x3A31 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x3A07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA5 PUSH1 0x2A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AB0 DUP3 PUSH2 0x3A49 JUMP JUMPDEST PUSH1 0x40 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 0x3AD4 DUP2 PUSH2 0x3A98 JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x3B02 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3B0C DUP2 DUP6 PUSH2 0x3AE6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x3B25 DUP2 PUSH2 0x2953 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3B45 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3B71 DUP2 DUP5 PUSH2 0x3AF7 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3B8B DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA7 JUMPI PUSH2 0x3BA6 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3BB5 DUP5 DUP3 DUP6 ADD PUSH2 0x3B7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1A PUSH1 0x26 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3C25 DUP3 PUSH2 0x3BBE JUMP JUMPDEST PUSH1 0x40 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 0x3C49 DUP2 PUSH2 0x3C0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C66 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3C70 DUP2 DUP6 PUSH2 0x3C50 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C98 DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CD9 PUSH1 0x1D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3CE4 DUP3 PUSH2 0x3CA3 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 0x3D08 DUP2 PUSH2 0x3CCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x29 0xCC 0xB4 0xD7 SAR MLOAD 0xCB DIV PUSH14 0x97D5B0FCCA978FD585CBF5594A67 0x4A DUP8 DUP5 PUSH10 0x20D1E45264736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:3640:20:-:0;;;747:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;808:4;814:6;1464:5:6;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;747:77:20;;88:3640;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;88:3640:20:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 8539, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 5379, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 8120, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 8533, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_callOptionalReturn_1118": { + "entryPoint": 8545, + "id": 1118, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 8744, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_cliff_4397": { + "entryPoint": 8349, + "id": 4397, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_endTime_4383": { + "entryPoint": 6751, + "id": 4383, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 6474, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 5564, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1720": { + "entryPoint": 7442, + "id": 1720, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 5371, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 6829, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payoutToken_4338": { + "entryPoint": 6922, + "id": 4338, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payout_4353": { + "entryPoint": 6890, + "id": 4353, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 5296, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_revert_2536": { + "entryPoint": 9855, + "id": 2536, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 7350, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 6986, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_startTime_4368": { + "entryPoint": 6673, + "id": 4368, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_transfer_1872": { + "entryPoint": 5713, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1779, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 2872, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claim_3803": { + "entryPoint": 2154, + "id": 3803, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@claimablePayout_3876": { + "entryPoint": 3507, + "id": 3876, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claimedPayout_3894": { + "entryPoint": 3166, + "id": 3894, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@create_4263": { + "entryPoint": 3749, + "id": 4263, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@functionCallWithValue_2361": { + "entryPoint": 9533, + "id": 2361, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_2297": { + "entryPoint": 9474, + "id": 2297, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1709, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 4922, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 9498, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 9135, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 1563, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 2738, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@payoutToken_3936": { + "entryPoint": 3269, + "id": 3936, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 2602, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 3651, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransferFrom_896": { + "entryPoint": 7983, + "id": 896, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_870": { + "entryPoint": 6539, + "id": 870, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 3629, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 5070, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 8427, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3960": { + "entryPoint": 1271, + "id": 3960, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 3361, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 8143, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 4580, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 2058, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_2492": { + "entryPoint": 9738, + "id": 2492, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vestDetails_4161": { + "entryPoint": 1393, + "id": 4161, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@vestedPayoutAtTime_4320": { + "entryPoint": 4684, + "id": 4320, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@vestedPayout_3820": { + "entryPoint": 4903, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPayout_3854": { + "entryPoint": 3055, + "id": 3854, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPeriod_3918": { + "entryPoint": 2634, + "id": 3918, + "parameterSlots": 1, + "returnSlots": 2 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 11356, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 10770, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11074, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 14855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 10022, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 15228, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 11422, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IERC20_$777": { + "entryPoint": 11684, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint128": { + "entryPoint": 11622, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 10175, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 10979, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11910, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 10855, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 11468, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11095, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 10791, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777": { + "entryPoint": 11705, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 14876, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 10043, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 15249, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 10196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 11846, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 10705, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 10100, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 15095, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 15451, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack": { + "entryPoint": 10353, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10596, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13750, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12441, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14517, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14076, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14733, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12549, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14371, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15373, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13118, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13386, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14625, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13532, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12972, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12149, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12657, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12295, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15564, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 15000, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint128_to_t_uint128_fromStack": { + "entryPoint": 10411, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 10368, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 15500, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 13799, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 10720, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 14800, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 15152, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 14289, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 10115, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed": { + "entryPoint": 10426, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12476, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14552, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14111, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12584, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14257, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14406, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15408, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12800, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13421, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13567, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13007, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12184, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12692, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15599, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 15035, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13313, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 11024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 10938, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 11265, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 9935, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 11292, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 15067, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 10509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 15078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 15440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 10520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13739, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint128": { + "entryPoint": 13599, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12879, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 13948, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 13835, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 13185, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 10687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 10088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 9955, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IERC20_$777": { + "entryPoint": 11643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint128": { + "entryPoint": 10383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 10241, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 10142, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IERC20_$777_to_t_address": { + "entryPoint": 10335, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 10317, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 10283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 11341, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 10537, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 12021, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 11216, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 10273, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 13667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 12832, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13901, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11974, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 11169, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 11159, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 11164, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 9950, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 9945, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 10579, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 12362, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 14438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 13997, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57": { + "entryPoint": 14692, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a": { + "entryPoint": 12508, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 14143, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 14330, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 15294, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 13039, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03": { + "entryPoint": 12724, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c": { + "entryPoint": 13345, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6": { + "entryPoint": 14584, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e": { + "entryPoint": 13453, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 12931, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 12070, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721": { + "entryPoint": 12616, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 12216, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 15523, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 14921, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da": { + "entryPoint": 13237, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 10747, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 11051, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 9999, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IERC20_$777": { + "entryPoint": 11661, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint128": { + "entryPoint": 11599, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 10152, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:42060:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1584:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:22", + "type": "" + } + ], + "src": "1518:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1701:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1710:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1713:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1703:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1703:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1703:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1667:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1692:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1674:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1674:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1664:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1664:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1657:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1657:43:22" + }, + "nodeType": "YulIf", + "src": "1654:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1637:5:22", + "type": "" + } + ], + "src": "1601:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1781:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1791:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1813:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1800:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "1800:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1791:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1856:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1829:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "1829:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1829:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1759:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1767:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1775:5:22", + "type": "" + } + ], + "src": "1729:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1940:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1986:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1988:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "1988:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1988:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1961:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1970:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1957:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1982:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:32:22" + }, + "nodeType": "YulIf", + "src": "1950:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2079:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2094:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2108:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2098:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2123:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2158:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2169:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2154:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2154:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2178:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2133:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2133:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2123:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1910:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1921:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1933:6:22", + "type": "" + } + ], + "src": "1874:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2254:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2264:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2279:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2286:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2275:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2264:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2236:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2246:7:22", + "type": "" + } + ], + "src": "2209:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2373:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2383:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2390:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2383:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2359:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2369:3:22", + "type": "" + } + ], + "src": "2341:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2467:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2477:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2535:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2517:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2517:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "2508:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "2508:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2477:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2447:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2457:9:22", + "type": "" + } + ], + "src": "2407:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2615:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2625:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2669:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "2638:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2638:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2625:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2595:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2605:9:22", + "type": "" + } + ], + "src": "2555:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2761:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2771:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2815:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "2784:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2784:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2771:9:22" + } + ] + } + ] + }, + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2741:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2751:9:22", + "type": "" + } + ], + "src": "2687:140:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2912:80:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2929:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2979:5:22" + } + ], + "functionName": { + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulIdentifier", + "src": "2934:44:22" + }, + "nodeType": "YulFunctionCall", + "src": "2934:51:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2922:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2922:64:22" + } + ] + }, + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2900:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2907:3:22", + "type": "" + } + ], + "src": "2833:159:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3063:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3080:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3103:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3085:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3085:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3073:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3073:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3073:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3051:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3058:3:22", + "type": "" + } + ], + "src": "2998:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:73:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3177:57:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3192:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3199:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3188:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3188:46:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3177:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3149:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3159:7:22", + "type": "" + } + ], + "src": "3122:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3311:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3328:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3351:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "3333:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3333:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3321:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3321:37:22" + } + ] + }, + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3299:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3306:3:22", + "type": "" + } + ], + "src": "3246:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3594:468:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3604:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3616:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3627:3:22", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3612:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3612:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3604:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3699:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3712:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3723:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3708:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3708:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3641:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "3641:85:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3641:85:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3780:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3793:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3804:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3789:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3789:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3736:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3736:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3736:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3862:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3875:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3886:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3871:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3871:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3818:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3818:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3818:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3944:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3968:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3953:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3900:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3900:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3900:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "4026:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4050:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4035:19:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3982:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3982:73:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3982:73:22" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3534:9:22", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "3546:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3554:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3562:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3570:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3578:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3589:4:22", + "type": "" + } + ], + "src": "3370:692:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4127:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4138:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4154:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4148:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4148:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4138:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4110:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4120:6:22", + "type": "" + } + ], + "src": "4068:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4269:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4286:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4291:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4279:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4279:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4279:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "4307:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4326:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4331:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4322:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4322:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4307:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4241:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4246:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4257:11:22", + "type": "" + } + ], + "src": "4173:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4410:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4420:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4429:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4424:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4489:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4514:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4519:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4510:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4510:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4533:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4538:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4529:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4529:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4523:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4523:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4503:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4503:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4503:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4450:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4453:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4447:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4447:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4461:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4463:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4472:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4475:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4468:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4468:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4463:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4443:3:22", + "statements": [] + }, + "src": "4439:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4572:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4577:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4568:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4568:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4586:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4561:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4561:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4561:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4392:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4397:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4402:6:22", + "type": "" + } + ], + "src": "4348:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4648:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4658:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4676:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4683:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4672:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4672:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4692:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4688:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4688:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4668:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4658:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4631:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4641:6:22", + "type": "" + } + ], + "src": "4600:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4800:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4810:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4857:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4824:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "4824:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4814:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4872:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4938:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4943:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4879:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4872:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4998:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5005:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4994:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4994:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5012:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5017:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4959:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "4959:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4959:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "5033:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5044:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5071:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "5049:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "5049:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5040:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5040:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5033:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4781:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4788:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4796:3:22", + "type": "" + } + ], + "src": "4708:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5209:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5219:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5231:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5242:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5227:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5227:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5219:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5266:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5277:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5262:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5262:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5285:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5291:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5281:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5281:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5255:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5255:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5255:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "5311:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5383:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5392:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5319:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "5319:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5311:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5181:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5193:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5204:4:22", + "type": "" + } + ], + "src": "5091:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5455:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5465:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5494:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5476:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5476:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5465:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5437:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5447:7:22", + "type": "" + } + ], + "src": "5410:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5577:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5594:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5617:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5599:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5599:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5587:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5587:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5587:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5565:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5572:3:22", + "type": "" + } + ], + "src": "5512:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5734:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5744:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5756:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5767:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5752:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5752:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5744:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5824:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5837:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5833:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5833:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5780:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5780:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5780:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5706:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5718:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5729:4:22", + "type": "" + } + ], + "src": "5636:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5907:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5964:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5973:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5976:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5966:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5966:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5966:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5930:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5955:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5937:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5937:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5927:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5927:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5920:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5920:43:22" + }, + "nodeType": "YulIf", + "src": "5917:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5900:5:22", + "type": "" + } + ], + "src": "5864:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6044:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6054:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6076:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6063:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "6063:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6054:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6119:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "6092:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "6092:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6092:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6022:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6030:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6038:5:22", + "type": "" + } + ], + "src": "5992:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6220:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6266:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6268:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6268:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6268:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6241:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6250:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6237:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6237:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6262:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6233:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6233:32:22" + }, + "nodeType": "YulIf", + "src": "6230:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6359:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6374:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6388:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6378:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6403:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6438:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6449:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6434:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6458:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6413:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6413:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6403:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6486:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6501:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6515:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6505:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6531:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6566:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6577:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6562:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6562:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6586:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6541:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6541:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6531:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6182:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6193:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6205:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6213:6:22", + "type": "" + } + ], + "src": "6137:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6717:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6763:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6765:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6765:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6765:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6738:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6747:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6734:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6734:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6759:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6730:32:22" + }, + "nodeType": "YulIf", + "src": "6727:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6856:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6871:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6885:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6875:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6900:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6935:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6946:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6931:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6955:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6910:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6910:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6900:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6983:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6998:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7012:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7002:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7028:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7063:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7074:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7059:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7059:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7083:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7038:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7038:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7028:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7111:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7126:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7140:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7130:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7156:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7191:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7202:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7187:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7187:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7211:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7166:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7166:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7156:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6671:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6682:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6694:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6702:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6710:6:22", + "type": "" + } + ], + "src": "6617:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7368:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7378:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7390:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7401:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7386:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7386:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7378:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7458:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7471:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7482:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7467:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7467:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7414:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7414:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7414:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7539:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7552:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7563:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7548:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7495:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7495:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7495:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7332:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7344:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7352:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7363:4:22", + "type": "" + } + ], + "src": "7242:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7646:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7692:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7694:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "7694:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7694:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7667:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7676:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7663:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7663:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7688:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7659:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7659:32:22" + }, + "nodeType": "YulIf", + "src": "7656:119:22" + }, + { + "nodeType": "YulBlock", + "src": "7785:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7800:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7814:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7804:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7829:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7864:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7875:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7860:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7860:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7884:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7839:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7839:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7829:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7616:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7627:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7639:6:22", + "type": "" + } + ], + "src": "7580:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8013:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8023:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8035:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8031:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8031:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8023:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8116:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8127:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8112:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8112:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "8059:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "8059:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8059:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7985:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7997:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8008:4:22", + "type": "" + } + ], + "src": "7915:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8183:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8237:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8249:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8239:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8239:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8206:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8228:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "8213:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "8213:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8203:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8203:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8196:40:22" + }, + "nodeType": "YulIf", + "src": "8193:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8176:5:22", + "type": "" + } + ], + "src": "8143:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8314:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8324:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8346:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8333:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8333:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8324:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8386:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "8362:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "8362:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8362:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8292:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8300:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8308:5:22", + "type": "" + } + ], + "src": "8265:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8484:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8530:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8532:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8532:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8532:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8505:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8514:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8501:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8501:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8526:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8497:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8497:32:22" + }, + "nodeType": "YulIf", + "src": "8494:119:22" + }, + { + "nodeType": "YulBlock", + "src": "8623:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8638:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8652:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8642:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8667:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8702:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8713:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8698:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8698:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8722:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8677:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "8677:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8667:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8750:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8765:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8779:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8769:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8795:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8827:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8838:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8823:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8847:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "8805:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8805:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8795:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8446:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8457:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8469:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8477:6:22", + "type": "" + } + ], + "src": "8404:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8967:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8984:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8987:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8977:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8977:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8977:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "8878:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9090:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9107:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9110:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9100:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9100:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9100:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "9001:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9152:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9169:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9172:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9162:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9162:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9162:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9266:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9269:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9259:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9259:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9259:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9290:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9293:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9283:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9283:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9283:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "9124:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9353:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9363:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9385:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9415:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "9393:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "9393:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9381:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9381:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "9367:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9532:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "9534:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "9534:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9534:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9475:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9487:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9472:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9472:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9511:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9523:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9508:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9508:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "9469:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9469:62:22" + }, + "nodeType": "YulIf", + "src": "9466:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9570:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "9574:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9563:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9563:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9563:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9339:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9347:4:22", + "type": "" + } + ], + "src": "9310:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9638:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9648:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "9658:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "9658:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9648:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9707:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9715:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "9687:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "9687:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9687:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9622:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9631:6:22", + "type": "" + } + ], + "src": "9597:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9798:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "9905:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "9905:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9875:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9883:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9872:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9872:30:22" + }, + "nodeType": "YulIf", + "src": "9869:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "9935:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9965:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "9943:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "9943:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "9935:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10009:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10021:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10027:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10017:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10017:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10009:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "9782:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "9793:4:22", + "type": "" + } + ], + "src": "9732:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10109:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10132:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10137:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10142:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "10119:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "10119:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10119:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10169:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10174:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10165:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10165:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10183:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10158:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10158:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10158:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "10091:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "10096:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10101:6:22", + "type": "" + } + ], + "src": "10045:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10280:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10290:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10356:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "10315:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "10315:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "10299:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "10299:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10290:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10380:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10387:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10373:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10373:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10373:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10403:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10418:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10425:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10414:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10414:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "10407:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10468:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "10470:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10470:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10470:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10449:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10454:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10445:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10445:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10463:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10442:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10442:25:22" + }, + "nodeType": "YulIf", + "src": "10439:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "10597:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "10602:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10607:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "10560:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "10560:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10560:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "10253:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10258:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10266:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "10274:5:22", + "type": "" + } + ], + "src": "10197:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10700:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10749:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "10751:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "10751:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10751:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10728:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10736:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10724:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10724:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10743:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10720:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10720:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10713:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10713:35:22" + }, + "nodeType": "YulIf", + "src": "10710:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10841:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10868:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10855:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "10855:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10845:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10884:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10944:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10952:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10940:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10940:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10959:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10967:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "10893:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "10893:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10884:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10678:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10686:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "10694:5:22", + "type": "" + } + ], + "src": "10639:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11109:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11156:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11158:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11158:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11158:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11130:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11139:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11126:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11151:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11122:33:22" + }, + "nodeType": "YulIf", + "src": "11119:120:22" + }, + { + "nodeType": "YulBlock", + "src": "11249:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11264:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11278:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11268:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11293:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11328:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11339:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11324:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11324:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11348:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11303:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11303:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11293:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11376:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11391:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11405:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11395:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11421:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11456:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11467:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11452:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11452:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11476:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "11431:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11431:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11421:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11504:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11519:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11533:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11523:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11549:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11584:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11595:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11580:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11580:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11604:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11559:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "11559:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11549:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11632:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11647:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11678:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11689:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11674:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11674:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11661:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "11661:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11651:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11740:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "11742:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11742:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11742:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11712:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11720:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11709:30:22" + }, + "nodeType": "YulIf", + "src": "11706:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "11837:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11881:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11892:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11877:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11877:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11901:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11847:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "11847:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "11837:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11055:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11066:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11078:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11086:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11094:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11102:6:22", + "type": "" + } + ], + "src": "10983:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11975:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12032:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12041:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12044:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12034:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12034:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12034:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11998:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12023:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "12005:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "12005:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11995:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11995:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11988:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11988:43:22" + }, + "nodeType": "YulIf", + "src": "11985:63:22" + } + ] + }, + "name": "validator_revert_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11968:5:22", + "type": "" + } + ], + "src": "11932:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12112:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12122:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12144:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12131:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12131:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12122:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12187:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "12160:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "12160:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12160:33:22" + } + ] + }, + "name": "abi_decode_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12090:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12098:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12106:5:22", + "type": "" + } + ], + "src": "12060:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12264:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12274:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12303:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "12285:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "12285:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "12274:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12246:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "12256:7:22", + "type": "" + } + ], + "src": "12205:110:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12378:93:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12449:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12458:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12461:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12451:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12451:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12451:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12401:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12440:5:22" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "12408:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "12408:38:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "12398:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "12398:49:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "12391:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12391:57:22" + }, + "nodeType": "YulIf", + "src": "12388:77:22" + } + ] + }, + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12371:5:22", + "type": "" + } + ], + "src": "12321:150:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12543:101:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12553:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12575:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12562:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12562:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12553:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12632:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "12591:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "12591:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12591:47:22" + } + ] + }, + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12521:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12529:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12537:5:22", + "type": "" + } + ], + "src": "12477:167:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12815:920:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12862:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12864:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12864:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12864:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12836:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12845:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12832:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12832:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12857:3:22", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12828:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12828:33:22" + }, + "nodeType": "YulIf", + "src": "12825:120:22" + }, + { + "nodeType": "YulBlock", + "src": "12955:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12970:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12984:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12974:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12999:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13034:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13045:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13030:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13030:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13054:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13009:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13009:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12999:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13082:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13097:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13111:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13101:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13127:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13162:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13173:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13158:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13158:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13182:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13137:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13137:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13210:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13225:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13239:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13229:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13255:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13290:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13301:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13286:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13286:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13310:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13265:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13265:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "13255:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13338:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13353:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13367:2:22", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13357:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13383:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13418:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13429:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13414:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13414:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13438:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13393:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13393:53:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13383:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13466:119:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13481:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13495:3:22", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13485:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13512:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13547:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13558:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13543:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13543:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13567:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "13522:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13522:53:22" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "13512:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13595:133:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13610:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13624:3:22", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13614:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13641:77:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13690:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13701:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13686:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13686:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13710:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "13651:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "13651:67:22" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "13641:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12745:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12756:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12768:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12776:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12784:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12792:6:22", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "12800:6:22", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "12808:6:22", + "type": "" + } + ], + "src": "12650:1085:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13824:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13870:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13872:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13872:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13872:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13845:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13854:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13841:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13841:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13866:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13837:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13837:32:22" + }, + "nodeType": "YulIf", + "src": "13834:119:22" + }, + { + "nodeType": "YulBlock", + "src": "13963:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13978:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13992:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13982:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14007:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14042:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14053:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14038:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14038:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14062:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14017:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14017:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14007:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14090:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14105:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14119:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14109:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14135:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14170:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14181:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14166:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14190:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14145:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14145:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14135:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13786:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13797:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13809:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13817:6:22", + "type": "" + } + ], + "src": "13741:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14304:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14350:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14352:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "14352:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14352:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14325:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14334:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14321:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14321:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14346:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14317:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14317:32:22" + }, + "nodeType": "YulIf", + "src": "14314:119:22" + }, + { + "nodeType": "YulBlock", + "src": "14443:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14458:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14472:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14462:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14487:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14522:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14533:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14518:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14542:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14497:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14497:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14487:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14570:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14585:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14599:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14589:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14615:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14650:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14661:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14646:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14646:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14670:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14625:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14625:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14615:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14266:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14277:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14289:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14297:6:22", + "type": "" + } + ], + "src": "14221:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14729:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14746:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14749:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14739:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14739:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14739:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14846:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14836:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14836:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14836:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14867:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14870:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14860:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14860:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14860:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14701:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14938:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14948:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14962:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14968:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "14958:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14958:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14948:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14979:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "15009:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15015:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15005:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15005:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "14983:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15056:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15070:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15084:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15092:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15080:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15080:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15070:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15036:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15029:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15029:26:22" + }, + "nodeType": "YulIf", + "src": "15026:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15159:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "15173:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "15173:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15173:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "15123:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15146:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15154:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "15143:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "15143:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "15120:38:22" + }, + "nodeType": "YulIf", + "src": "15117:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14922:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14931:6:22", + "type": "" + } + ], + "src": "14887:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15319:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15341:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15349:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15337:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15337:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15353:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15330:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15330:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15330:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15409:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15417:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15405:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15405:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15422:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15398:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15398:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15398:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15311:6:22", + "type": "" + } + ], + "src": "15213:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15585:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15595:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15661:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15666:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15602:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15602:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15595:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15767:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "15678:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15678:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15678:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15780:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15791:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15796:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15787:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15780:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15573:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15581:3:22", + "type": "" + } + ], + "src": "15439:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15982:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15992:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16004:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16015:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16000:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15992:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16050:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16035:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16058:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16064:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16054:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16054:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16028:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16028:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16028:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "16084:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16218:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16092:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "16092:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16084:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15962:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15977:4:22", + "type": "" + } + ], + "src": "15811:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16342:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16364:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16372:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16360:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16360:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16376:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16353:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16353:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16353:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16432:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16440:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16428:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16428:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16445:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16421:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16421:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16421:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16334:6:22", + "type": "" + } + ], + "src": "16236:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16636:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16646:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16712:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16717:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16653:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "16653:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16646:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16818:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "16729:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "16729:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16729:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "16831:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16842:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16847:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16838:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16838:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16831:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16624:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16632:3:22", + "type": "" + } + ], + "src": "16490:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17033:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17043:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17055:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17066:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17051:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17051:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17043:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17090:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17101:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17086:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17086:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17109:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17115:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17105:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17105:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17079:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17079:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17079:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17135:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17269:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17143:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17143:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17135:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17013:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17028:4:22", + "type": "" + } + ], + "src": "16862:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17393:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17415:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17423:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17411:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17411:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17427:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17404:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17404:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17404:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17483:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17491:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17479:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17479:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17496:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17472:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17472:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17472:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17385:6:22", + "type": "" + } + ], + "src": "17287:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17671:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17681:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17747:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17752:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17688:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17688:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17681:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17853:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "17764:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17764:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17764:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17866:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17877:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17882:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17873:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17873:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17866:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17659:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17667:3:22", + "type": "" + } + ], + "src": "17525:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18068:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18078:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18090:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18101:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18086:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18086:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18078:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18125:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18136:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18121:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18121:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18144:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18150:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18140:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18140:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18114:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18114:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18114:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18170:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18304:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18178:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "18178:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18170:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18048:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18063:4:22", + "type": "" + } + ], + "src": "17897:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18428:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18450:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18458:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18446:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18446:14:22" + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18462:27:22", + "type": "", + "value": "ERC5725: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18439:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18439:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18439:51:22" + } + ] + }, + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18420:6:22", + "type": "" + } + ], + "src": "18322:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18649:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18659:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18725:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18730:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18666:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18666:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18659:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18831:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulIdentifier", + "src": "18742:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18742:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18742:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18844:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18855:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18860:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18851:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18851:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18844:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18637:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18645:3:22", + "type": "" + } + ], + "src": "18503:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19046:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19056:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19068:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19079:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19064:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19064:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19056:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19103:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19114:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19099:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19099:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19122:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19128:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19118:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19118:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19092:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19092:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19092:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19148:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19282:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19156:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19156:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19148:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19026:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19041:4:22", + "type": "" + } + ], + "src": "18875:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19406:60:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19428:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19436:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19424:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19424:14:22" + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19440:18:22", + "type": "", + "value": "Not owner of NFT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19417:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19417:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19417:42:22" + } + ] + }, + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19398:6:22", + "type": "" + } + ], + "src": "19300:166:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19618:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19628:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19694:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19699:2:22", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19635:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19635:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19628:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19800:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulIdentifier", + "src": "19711:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19711:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19711:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19813:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19824:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19829:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19820:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19813:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19606:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19614:3:22", + "type": "" + } + ], + "src": "19472:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20015:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20025:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20037:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20048:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20033:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20033:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20025:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20072:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20083:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20068:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20068:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20091:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20097:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20087:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20087:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20061:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20061:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20061:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "20117:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20251:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20125:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "20125:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20117:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19995:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20010:4:22", + "type": "" + } + ], + "src": "19844:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20375:70:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20397:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20405:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20393:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20393:14:22" + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20409:28:22", + "type": "", + "value": "ERC5725: No pending payout" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20386:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20386:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20386:52:22" + } + ] + }, + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20367:6:22", + "type": "" + } + ], + "src": "20269:176:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20597:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20607:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20673:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20678:2:22", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20614:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20614:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20607:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20779:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulIdentifier", + "src": "20690:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20690:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20690:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20792:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20803:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20808:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20799:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20799:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20792:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20585:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20593:3:22", + "type": "" + } + ], + "src": "20451:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20994:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21004:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21016:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21027:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21012:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21012:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21004:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21051:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21062:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21047:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21047:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21070:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21076:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21066:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21066:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21040:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21040:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21040:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "21096:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21230:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21104:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "21104:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21096:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20974:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20989:4:22", + "type": "" + } + ], + "src": "20823:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21276:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21293:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21296:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21286:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21286:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21286:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21390:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21393:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21383:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21383:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21383:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21414:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21417:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21407:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21407:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21407:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "21248:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21478:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21488:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21511:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21493:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21493:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21488:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21522:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21545:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21527:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21527:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21522:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21556:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21567:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21570:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21563:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21563:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21556:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21596:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21598:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "21598:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21598:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21588:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21591:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21585:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "21585:10:22" + }, + "nodeType": "YulIf", + "src": "21582:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21465:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21468:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "21474:3:22", + "type": "" + } + ], + "src": "21434:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21737:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21759:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21767:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21755:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21755:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21771:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21748:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21748:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21748:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21729:6:22", + "type": "" + } + ], + "src": "21631:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21957:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21967:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22033:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22038:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21974:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "21974:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21967:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22139:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "22050:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "22050:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22050:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "22152:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22163:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22168:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22159:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22159:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22152:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21945:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21953:3:22", + "type": "" + } + ], + "src": "21811:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22354:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22364:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22376:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22387:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22372:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22372:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22364:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22411:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22422:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22407:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22407:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22430:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22436:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22426:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22426:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22400:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22400:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22400:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "22456:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22590:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22464:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "22464:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22456:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22334:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22349:4:22", + "type": "" + } + ], + "src": "22183:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22714:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22736:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22744:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22732:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22732:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22748:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22725:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22725:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22725:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22804:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22812:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22800:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22800:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22817:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22793:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22793:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22793:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22706:6:22", + "type": "" + } + ], + "src": "22608:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22988:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22998:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23064:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23069:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23005:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "23005:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22998:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23170:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "23081:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "23081:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23081:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "23183:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23194:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23199:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23190:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23190:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23183:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22976:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22984:3:22", + "type": "" + } + ], + "src": "22842:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23385:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23395:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23407:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23418:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23403:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23403:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23395:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23442:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23453:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23438:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23461:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23467:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23457:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23457:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23431:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23431:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23431:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "23487:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23621:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23495:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "23495:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23487:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23365:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23380:4:22", + "type": "" + } + ], + "src": "23214:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23684:149:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23694:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23717:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "23699:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "23699:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23694:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23728:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23751:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "23733:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "23733:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23728:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23762:17:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23774:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "23777:1:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23770:9:22" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "23762:4:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23804:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "23806:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "23806:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23806:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "23795:4:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "23801:1:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "23792:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "23792:11:22" + }, + "nodeType": "YulIf", + "src": "23789:37:22" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "23670:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "23673:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "23679:4:22", + "type": "" + } + ], + "src": "23639:194:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23945:75:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23967:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23975:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23963:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23963:14:22" + }, + { + "hexValue": "737461727454696d652063616e6e6f74206265206f6e207468652070617374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23979:33:22", + "type": "", + "value": "startTime cannot be on the past" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23956:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23956:57:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23956:57:22" + } + ] + }, + "name": "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23937:6:22", + "type": "" + } + ], + "src": "23839:181:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24172:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24182:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24248:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24253:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24189:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "24189:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24182:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24354:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da", + "nodeType": "YulIdentifier", + "src": "24265:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "24265:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24265:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "24367:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24378:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24383:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24374:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24374:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24367:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24160:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24168:3:22", + "type": "" + } + ], + "src": "24026:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24569:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24579:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24591:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24602:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24587:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24587:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24579:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24626:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24637:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24622:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24622:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24645:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24651:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24641:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24641:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24615:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24615:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24615:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "24671:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24805:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24679:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "24679:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24671:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24549:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24564:4:22", + "type": "" + } + ], + "src": "24398:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24929:66:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24951:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24959:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24947:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24947:14:22" + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24963:24:22", + "type": "", + "value": "to cannot be address 0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24940:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24940:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24940:48:22" + } + ] + }, + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24921:6:22", + "type": "" + } + ], + "src": "24823:172:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25147:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25157:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25223:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25228:2:22", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25164:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "25164:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25157:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25329:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulIdentifier", + "src": "25240:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "25240:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25240:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "25342:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25353:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25358:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25349:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25349:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25342:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25135:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25143:3:22", + "type": "" + } + ], + "src": "25001:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25544:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25554:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25566:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25577:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25562:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25562:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25554:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25601:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25612:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25597:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25597:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25620:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25626:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25616:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25616:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25590:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25590:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25590:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "25646:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25780:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25654:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "25654:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25646:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25524:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25539:4:22", + "type": "" + } + ], + "src": "25373:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25904:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25926:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25934:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25922:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25922:14:22" + }, + { + "hexValue": "6475726174696f6e206e6565647320746f206265206d6f7265207468616e2063", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25938:34:22", + "type": "", + "value": "duration needs to be more than c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25915:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25915:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25915:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25994:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26002:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25990:15:22" + }, + { + "hexValue": "6c696666", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26007:6:22", + "type": "", + "value": "liff" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25983:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "25983:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25983:31:22" + } + ] + }, + "name": "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25896:6:22", + "type": "" + } + ], + "src": "25798:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26173:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26183:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26249:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26254:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26190:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "26190:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26183:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26355:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e", + "nodeType": "YulIdentifier", + "src": "26266:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "26266:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26266:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "26368:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26379:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26384:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26375:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26375:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26368:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26161:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26169:3:22", + "type": "" + } + ], + "src": "26027:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26570:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26580:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26592:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26603:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26588:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26588:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26580:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26627:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26638:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26623:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26623:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26646:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26652:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26642:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26642:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26616:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26616:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26616:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "26672:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26806:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26680:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "26680:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26672:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "26550:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26565:4:22", + "type": "" + } + ], + "src": "26399:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26868:180:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26878:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26901:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "26883:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "26883:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26878:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26912:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26935:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "26917:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "26917:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26912:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26946:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "26957:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "26960:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26953:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "26946:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27019:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27021:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "27021:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27021:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "26978:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26983:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "26975:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "26975:43:22" + }, + "nodeType": "YulIf", + "src": "26972:69:22" + } + ] + }, + "name": "checked_add_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "26855:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "26858:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "26864:3:22", + "type": "" + } + ], + "src": "26824:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27097:190:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27107:33:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27134:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27116:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "27116:24:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27107:5:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27230:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27232:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "27232:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27232:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27155:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27162:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "27152:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "27152:77:22" + }, + "nodeType": "YulIf", + "src": "27149:103:22" + }, + { + "nodeType": "YulAssignment", + "src": "27261:20:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27272:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27279:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27268:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27268:13:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "27261:3:22" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "27083:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "27093:3:22", + "type": "" + } + ], + "src": "27054:233:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27407:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27417:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27432:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "27417:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27379:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27384:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "27395:11:22", + "type": "" + } + ], + "src": "27293:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27557:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "27567:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27614:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "27581:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "27581:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "27571:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27629:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27713:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27718:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "27636:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "27636:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27629:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "27773:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27780:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27769:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27769:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27787:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27792:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "27734:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "27734:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27734:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "27808:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27819:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "27824:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27815:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27815:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27808:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "27538:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27545:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27553:3:22", + "type": "" + } + ], + "src": "27447:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28027:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28038:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28127:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28136:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28045:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "28045:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28038:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28150:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28239:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28248:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "28157:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "28157:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28150:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28262:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28269:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28262:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27998:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "28004:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "28012:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28023:3:22", + "type": "" + } + ], + "src": "27843:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28332:362:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28342:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28365:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28347:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28347:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28342:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28376:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28399:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28381:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28381:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28376:1:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "28410:28:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28433:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28436:1:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "28429:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28429:9:22" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "28414:11:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28447:41:22", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "28476:11:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28458:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28458:30:22" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "28447:7:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28665:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "28667:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "28667:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28667:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28598:1:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "28591:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28591:9:22" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28621:1:22" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "28628:7:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28637:1:22" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "28624:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28624:15:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "28618:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "28618:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "28571:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "28571:83:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "28551:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28551:113:22" + }, + "nodeType": "YulIf", + "src": "28548:139:22" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "28315:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "28318:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "28324:7:22", + "type": "" + } + ], + "src": "28284:410:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28728:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28745:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28748:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28738:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28738:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28738:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28842:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28845:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28835:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28835:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28835:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28866:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28869:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "28859:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28859:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28859:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "28700:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28928:143:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28938:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28961:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28943:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28943:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "28938:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "28972:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28995:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "28977:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "28977:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "28972:1:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29019:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "29021:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "29021:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29021:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "29016:1:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "29009:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29009:9:22" + }, + "nodeType": "YulIf", + "src": "29006:35:22" + }, + { + "nodeType": "YulAssignment", + "src": "29051:14:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "29060:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "29063:1:22" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "29056:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29056:9:22" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "29051:1:22" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "28917:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "28920:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "28926:1:22", + "type": "" + } + ], + "src": "28886:185:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29183:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29205:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29213:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29201:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29217:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29194:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29194:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29273:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29269:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29269:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29286:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29262:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29262:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29262:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29175:6:22", + "type": "" + } + ], + "src": "29077:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29453:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29463:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29529:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29534:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29470:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "29470:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29463:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29635:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "29546:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "29546:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29546:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "29648:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29659:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29664:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29655:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29655:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29648:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29441:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29449:3:22", + "type": "" + } + ], + "src": "29307:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29850:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29860:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29883:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29868:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29860:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29907:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29918:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29903:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29903:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29926:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29932:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29922:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29922:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29896:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29896:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29896:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "29952:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30086:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29960:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "29960:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29952:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29830:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29845:4:22", + "type": "" + } + ], + "src": "29679:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30210:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30232:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30240:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30228:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30228:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30244:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30221:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30221:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30221:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30300:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30308:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30296:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30296:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30313:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30289:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30289:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30289:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30202:6:22", + "type": "" + } + ], + "src": "30104:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30479:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30489:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30555:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30560:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30496:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "30496:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30489:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30661:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "30572:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "30572:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30572:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "30674:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30685:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30690:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30681:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30681:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30674:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30467:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30475:3:22", + "type": "" + } + ], + "src": "30333:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30876:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30886:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30898:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30909:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30894:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30894:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30886:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30933:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30944:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30929:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30929:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30952:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30958:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30948:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30948:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30922:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30922:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "30978:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31112:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30986:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "30986:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30978:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30856:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30871:4:22", + "type": "" + } + ], + "src": "30705:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31256:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31266:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31278:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31289:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31274:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31274:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31266:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31346:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31359:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31370:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31355:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31302:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31302:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31302:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31427:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31440:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31451:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31436:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31436:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "31383:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31383:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31383:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31220:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31232:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31240:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31251:4:22", + "type": "" + } + ], + "src": "31130:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31574:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31596:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31604:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31592:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31592:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31608:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31585:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "31585:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31585:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31566:6:22", + "type": "" + } + ], + "src": "31468:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31795:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31805:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31871:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31876:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31812:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "31812:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31805:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31977:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "31888:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "31888:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31888:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "31990:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32001:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32006:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31997:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31997:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31990:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31783:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31791:3:22", + "type": "" + } + ], + "src": "31649:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32192:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32202:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32214:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32225:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32210:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32210:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32202:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32249:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32260:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32245:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32245:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32268:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32274:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32264:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32264:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32238:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32238:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "32294:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32428:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32302:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "32302:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32294:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32172:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32187:4:22", + "type": "" + } + ], + "src": "32021:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32552:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32574:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32582:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32570:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32570:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32586:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32563:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32563:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32563:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32642:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32650:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32638:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32638:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32655:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32631:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32631:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32631:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32544:6:22", + "type": "" + } + ], + "src": "32446:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32835:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32845:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32911:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32916:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32852:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "32852:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32845:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33017:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "32928:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "32928:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32928:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "33030:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33041:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33046:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33037:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33037:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33030:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32823:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32831:3:22", + "type": "" + } + ], + "src": "32689:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33232:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33242:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33254:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33265:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33250:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33250:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33242:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33289:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33300:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33285:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33285:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33308:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33314:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33304:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33304:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33278:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33278:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33278:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "33334:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33468:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33342:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "33342:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33334:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33212:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33227:4:22", + "type": "" + } + ], + "src": "33061:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33592:76:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "33614:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33622:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33610:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33610:14:22" + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "33626:34:22", + "type": "", + "value": "ERC721: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33603:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33603:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33603:58:22" + } + ] + }, + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "33584:6:22", + "type": "" + } + ], + "src": "33486:182:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33820:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33830:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33896:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33901:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33837:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "33837:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33830:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34002:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulIdentifier", + "src": "33913:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "33913:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33913:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34015:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34026:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34031:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34022:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34022:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34015:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33808:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33816:3:22", + "type": "" + } + ], + "src": "33674:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34217:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34227:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34239:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34250:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34235:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34227:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34274:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34285:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34270:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34270:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34293:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34299:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34289:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34289:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34263:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34263:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34263:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "34319:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34453:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34327:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "34327:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34319:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34197:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34212:4:22", + "type": "" + } + ], + "src": "34046:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34577:72:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34599:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34607:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34595:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34595:14:22" + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34611:30:22", + "type": "", + "value": "ERC721: token already minted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34588:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34588:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34588:54:22" + } + ] + }, + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34569:6:22", + "type": "" + } + ], + "src": "34471:178:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34801:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34811:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34877:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34882:2:22", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34818:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "34818:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34811:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34983:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulIdentifier", + "src": "34894:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "34894:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34894:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34996:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35007:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35012:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35003:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35003:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34996:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34789:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34797:3:22", + "type": "" + } + ], + "src": "34655:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35198:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35208:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35220:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35231:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35216:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35216:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35208:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35255:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35266:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35251:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35251:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35274:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35280:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "35270:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35270:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35244:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "35244:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35244:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "35300:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35434:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35308:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "35308:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35300:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35178:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35193:4:22", + "type": "" + } + ], + "src": "35027:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35606:288:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35616:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35628:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35639:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35624:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35624:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35616:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "35696:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35709:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35720:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35705:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35652:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35652:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35652:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "35777:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35790:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35801:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35786:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35786:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35733:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35733:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35733:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "35859:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35872:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35883:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35868:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35868:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35815:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "35815:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35815:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35562:9:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "35574:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35582:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35590:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35601:4:22", + "type": "" + } + ], + "src": "35452:442:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35960:77:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35970:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "35985:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "35979:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "35979:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35970:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36025:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "36001:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "36001:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36001:30:22" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "35938:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35946:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35954:5:22", + "type": "" + } + ], + "src": "35900:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36117:271:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "36163:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "36165:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "36165:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36165:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36138:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36147:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36134:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36159:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "36130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36130:32:22" + }, + "nodeType": "YulIf", + "src": "36127:119:22" + }, + { + "nodeType": "YulBlock", + "src": "36256:125:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36271:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36285:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36275:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36300:71:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36343:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36354:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36339:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36339:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36363:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "36310:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "36310:61:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36300:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36087:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "36098:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "36110:6:22", + "type": "" + } + ], + "src": "36043:345:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36500:123:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "36522:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36530:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36518:14:22" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "36534:34:22", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36511:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36511:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36511:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "36590:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36598:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36586:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36586:15:22" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "36603:12:22", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36579:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36579:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36579:37:22" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "36492:6:22", + "type": "" + } + ], + "src": "36394:229:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36775:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36785:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36851:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36856:2:22", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36792:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "36792:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36785:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36957:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "36868:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "36868:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36868:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "36970:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36981:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36986:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36977:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36977:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "36970:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36763:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36771:3:22", + "type": "" + } + ], + "src": "36629:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37172:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37182:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37194:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37205:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37190:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37190:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37182:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37229:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37240:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37225:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37225:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37248:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37254:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37244:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37244:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37218:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37218:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37218:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "37274:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37408:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37282:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "37282:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37274:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37152:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37167:4:22", + "type": "" + } + ], + "src": "37001:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37484:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37495:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37511:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37505:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "37505:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37495:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "37467:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37477:6:22", + "type": "" + } + ], + "src": "37426:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37625:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37642:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37647:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37635:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37635:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37635:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "37663:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37682:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37687:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37678:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37678:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "37663:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37597:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37602:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "37613:11:22", + "type": "" + } + ], + "src": "37530:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37794:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37804:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37850:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "37818:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "37818:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "37808:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "37865:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37930:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "37935:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37872:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "37872:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37865:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37990:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37997:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37986:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37986:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38004:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38009:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "37951:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "37951:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37951:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "38025:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38036:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38063:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "38041:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "38041:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38032:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38032:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38025:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "37775:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37782:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37790:3:22", + "type": "" + } + ], + "src": "37704:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38283:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38293:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38305:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38316:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38301:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38301:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38293:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "38374:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38387:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38398:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38383:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38383:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "38330:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38330:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38330:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "38455:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38468:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38479:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38464:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38464:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "38411:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38411:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38411:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "38537:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38550:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38561:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38546:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38546:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "38493:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "38493:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38493:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38586:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38597:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38582:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38606:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38612:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38602:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38602:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38575:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "38575:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38575:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "38632:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "38702:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38711:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38640:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "38640:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38632:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38231:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "38243:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "38251:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "38259:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38267:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "38278:4:22", + "type": "" + } + ], + "src": "38083:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38791:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38801:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "38816:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38810:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "38810:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38801:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38858:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "38832:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "38832:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38832:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "38769:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38777:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38785:5:22", + "type": "" + } + ], + "src": "38729:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38952:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "38998:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "39000:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "39000:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39000:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "38973:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38969:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38969:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38994:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "38965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38965:32:22" + }, + "nodeType": "YulIf", + "src": "38962:119:22" + }, + { + "nodeType": "YulBlock", + "src": "39091:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "39106:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39120:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "39110:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "39135:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39180:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "39191:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39176:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39176:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "39200:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "39145:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "39145:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39135:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38922:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "38933:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38945:6:22", + "type": "" + } + ], + "src": "38876:349:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39337:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "39359:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39367:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39355:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39355:14:22" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "39371:34:22", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39348:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39348:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39348:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "39427:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39435:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39423:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39423:15:22" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "39440:8:22", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39416:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39416:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39416:33:22" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "39329:6:22", + "type": "" + } + ], + "src": "39231:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39608:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39618:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39684:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39689:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39625:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "39625:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39618:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39790:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "39701:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "39701:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39701:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "39803:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39814:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39819:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39810:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39810:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "39803:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "39596:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "39604:3:22", + "type": "" + } + ], + "src": "39462:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40005:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40015:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40027:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40038:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40023:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40023:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40015:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40062:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40073:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40058:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40058:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40081:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40087:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40077:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40077:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "40051:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "40051:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "40107:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40241:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40115:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "40115:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40107:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39985:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40000:4:22", + "type": "" + } + ], + "src": "39834:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40372:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40382:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40397:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "40382:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40344:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "40349:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "40360:11:22", + "type": "" + } + ], + "src": "40259:147:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40520:278:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "40530:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40576:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "40544:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "40544:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "40534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "40591:95:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40674:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40679:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "40598:75:22" + }, + "nodeType": "YulFunctionCall", + "src": "40598:88:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40591:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "40734:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40741:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40730:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40748:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40753:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "40695:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "40695:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "40695:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "40769:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40780:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "40785:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40776:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "40776:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "40769:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "40501:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40508:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "40516:3:22", + "type": "" + } + ], + "src": "40412:386:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40938:137:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40949:100:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41036:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41045:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "40956:79:22" + }, + "nodeType": "YulFunctionCall", + "src": "40956:93:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "40949:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "41059:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41066:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "41059:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "40917:3:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40923:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "40934:3:22", + "type": "" + } + ], + "src": "40804:271:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41187:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "41209:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41217:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41205:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41205:14:22" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "41221:31:22", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41198:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "41198:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41198:55:22" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "41179:6:22", + "type": "" + } + ], + "src": "41081:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41412:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41422:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41488:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41493:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41429:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "41429:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41422:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41594:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "41505:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "41505:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41505:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "41607:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "41618:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41623:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41614:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41614:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "41607:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "41400:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "41408:3:22", + "type": "" + } + ], + "src": "41266:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41809:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41819:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41831:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41842:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41827:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41827:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41819:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41866:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41877:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41862:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41862:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41885:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41891:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "41881:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "41881:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41855:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "41855:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "41855:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "41911:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42045:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41919:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "41919:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41911:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41789:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41804:4:22", + "type": "" + } + ], + "src": "41638:419:22" + } + ] + }, + "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_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 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_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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$777_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$777_to_t_address(value))\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 cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128_t_uint128__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_contract$_IERC20_$777_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_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value4, add(headStart, 128))\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 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 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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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__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 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 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_decode_tuple_t_addresst_addresst_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_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 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 abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\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 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_contract$_IERC20_$777(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$777(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$777(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$777(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC20_$777(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint128t_uint128t_uint128t_contract$_IERC20_$777(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { 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_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_contract$_IERC20_$777(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_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_uint256(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_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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__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_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of NFT\")\n\n }\n\n function abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__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_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: No pending payout\")\n\n }\n\n function abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__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_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack( tail)\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 store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da(memPtr) {\n\n mstore(add(memPtr, 0), \"startTime cannot be on the past\")\n\n }\n\n function abi_encode_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da__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_e52a7138256e5e84e00f185624d2363654758a792d751b905e2aa6d6b3ed59da_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(memPtr) {\n\n mstore(add(memPtr, 0), \"to cannot be address 0\")\n\n }\n\n function abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__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_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e(memPtr) {\n\n mstore(add(memPtr, 0), \"duration needs to be more than c\")\n\n mstore(add(memPtr, 32), \"liff\")\n\n }\n\n function abi_encode_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e__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_981df40a45c1fe3b8c07a3d42a19eb1d7cefb0b01df00b7eecb6a7a5f944ca8e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint128(x, y) -> sum {\n x := cleanup_t_uint128(x)\n y := cleanup_t_uint128(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\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 store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__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_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\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 }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__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_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( 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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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 store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__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_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__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_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81D0526D GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0xC196F42F EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x467 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C7 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x81D0526D EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3E3 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x273B JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x571 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BE PUSH2 0x61B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x2A27 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x256 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x2A67 JUMP JUMPDEST PUSH2 0xA2A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP3 SWAP2 SWAP1 PUSH2 0x2ABA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x2AE3 JUMP JUMPDEST PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x34F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x2B57 JUMP JUMPDEST PUSH2 0xE2D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0xE43 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x435 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x430 SWAP2 SWAP1 PUSH2 0x2DB9 JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x451 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45E SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x2E46 JUMP JUMPDEST PUSH2 0x124C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48E SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AC SWAP2 SWAP1 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x1327 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BE SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DC SWAP2 SWAP1 PUSH2 0x2E86 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x56A JUMPI POP PUSH2 0x569 DUP3 PUSH2 0x13CE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x62A SWAP1 PUSH2 0x2EF5 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 0x656 SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x678 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A3 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 0x686 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B8 DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FE DUP3 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x76E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x765 SWAP1 PUSH2 0x2F98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x78D PUSH2 0x14FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x7BC JUMPI POP PUSH2 0x7BB DUP2 PUSH2 0x7B6 PUSH2 0x14FB JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST JUMPDEST PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x302A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x805 DUP4 DUP4 PUSH2 0x1503 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x81B PUSH2 0x815 PUSH2 0x14FB JUMP JUMPDEST DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x851 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x865 DUP4 DUP4 DUP4 PUSH2 0x1651 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x874 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x8B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8AA SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8D3 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x920 SWAP1 PUSH2 0x3194 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x934 DUP4 PUSH2 0xDB3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x979 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x970 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9C0 SWAP2 SWAP1 PUSH2 0x2B10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9EB SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA25 CALLER DUP3 PUSH2 0xA00 DUP7 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x198B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA45 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE43 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA57 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xA96 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA8D SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0xAA8 DUP6 PUSH2 0x1A5F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xABE DUP4 PUSH2 0x1AAD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x3361 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xBFB DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xC3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC31 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC43 DUP4 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xC4C DUP5 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC6A DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xCA9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA0 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xCD1 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xD10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD07 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 DUP4 PUSH2 0x1B0A JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD30 SWAP1 PUSH2 0x2EF5 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 0xD5C SWAP1 PUSH2 0x2EF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA9 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 0xD8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xDBF DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDF5 SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE1B DUP5 PUSH2 0x1327 JUMP JUMPDEST PUSH2 0xE25 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE3F PUSH2 0xE38 PUSH2 0x14FB JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1B4A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE54 PUSH2 0xE4E PUSH2 0x14FB JUMP JUMPDEST DUP4 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0xE93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE8A SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE9F DUP5 DUP5 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST TIMESTAMP DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xEFA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEF1 SWAP1 PUSH2 0x3401 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF69 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF60 SWAP1 PUSH2 0x346D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0xFD0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFC7 SWAP1 PUSH2 0x34FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP8 PUSH2 0x1028 SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP8 PUSH2 0x104B SWAP2 SWAP1 PUSH2 0x351F JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1197 SWAP1 PUSH2 0x3563 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11A6 DUP8 DUP3 PUSH2 0x1D12 JUMP JUMPDEST PUSH2 0x11DB CALLER ADDRESS DUP9 PUSH2 0x11B5 DUP6 PUSH2 0xCC5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1F2F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11EF DUP3 PUSH2 0x14B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F9 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1244 JUMP JUMPDEST DUP1 PUSH2 0x1223 DUP5 PUSH2 0x1FCF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x35E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1258 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x1297 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x128E SWAP1 PUSH2 0x3128 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12A0 DUP5 PUSH2 0x209D JUMP JUMPDEST DUP4 LT ISZERO PUSH2 0x12B0 JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12B9 DUP5 PUSH2 0x1A5F JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x12D0 JUMPI PUSH2 0x12C9 DUP5 PUSH2 0x1AEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x12D9 DUP5 PUSH2 0x1A11 JUMP JUMPDEST PUSH2 0x12E2 DUP6 PUSH2 0x1A5F JUMP JUMPDEST PUSH2 0x12EC SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x12F5 DUP6 PUSH2 0x1A11 JUMP JUMPDEST DUP5 PUSH2 0x1300 SWAP2 SWAP1 PUSH2 0x3381 JUMP JUMPDEST PUSH2 0x1309 DUP7 PUSH2 0x1AEA JUMP JUMPDEST PUSH2 0x1313 SWAP2 SWAP1 PUSH2 0x360B JUMP JUMPDEST PUSH2 0x131D SWAP2 SWAP1 PUSH2 0x367C JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1333 DUP3 TIMESTAMP PUSH2 0x124C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1499 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x14A9 JUMPI POP PUSH2 0x14A8 DUP3 PUSH2 0x20EB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14B9 DUP2 PUSH2 0x194A JUMP JUMPDEST PUSH2 0x14F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14EF SWAP1 PUSH2 0x32CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1576 DUP4 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C8 DUP4 PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x160A JUMPI POP PUSH2 0x1609 DUP2 DUP6 PUSH2 0x133A JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1648 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1630 DUP5 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1671 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x16C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16BE SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1736 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x172D SWAP1 PUSH2 0x37B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1743 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1763 DUP3 PUSH2 0xAB2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B0 SWAP1 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1945 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x196C DUP4 PUSH2 0x1AAD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A0C DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x19AA SWAP3 SWAP2 SWAP1 PUSH2 0x37D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BAF SWAP1 PUSH2 0x3846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1CA9 SWAP2 SWAP1 PUSH2 0x2783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1CC1 DUP5 DUP5 DUP5 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x1CCD DUP5 DUP5 DUP5 DUP5 PUSH2 0x2228 JUMP JUMPDEST PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D78 SWAP1 PUSH2 0x3944 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1D8A DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DC1 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1DD8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2155 JUMP JUMPDEST PUSH2 0x1DE1 DUP2 PUSH2 0x194A JUMP JUMPDEST ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E18 SWAP1 PUSH2 0x39B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F2B PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x215B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FB2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1F50 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2161 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FDE DUP5 PUSH2 0x23AF JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FFD JUMPI PUSH2 0x1FFC PUSH2 0x2BA1 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 0x202F 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 0x2092 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x2086 JUMPI PUSH2 0x2085 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x203D JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21C3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2502 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2223 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21E3 SWAP2 SWAP1 PUSH2 0x3A1C JUMP JUMPDEST PUSH2 0x2222 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2219 SWAP1 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2249 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x251A JUMP JUMPDEST ISZERO PUSH2 0x23A2 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x2272 PUSH2 0x14FB JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2294 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3B30 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x22D0 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 0x22CD SWAP2 SWAP1 PUSH2 0x3B91 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2352 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2300 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 0x2305 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x234A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2341 SWAP1 PUSH2 0x38D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x23A7 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x240D JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x244A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2440 JUMPI PUSH2 0x243F PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2479 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x246F JUMPI PUSH2 0x246E PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x24A2 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x24C7 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x24BD JUMPI PUSH2 0x24BC PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x24EA JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x364D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24F9 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2511 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x253D JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2582 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2579 SWAP1 PUSH2 0x3C30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x25AB SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x25E8 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 0x25ED JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x25FE DUP8 DUP4 DUP4 DUP8 PUSH2 0x260A JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x266C JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x2664 JUMPI PUSH2 0x2624 DUP6 PUSH2 0x251A JUMP JUMPDEST PUSH2 0x2663 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x265A SWAP1 PUSH2 0x3CEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x2676 DUP4 DUP4 PUSH2 0x267F JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x2692 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C6 SWAP2 SWAP1 PUSH2 0x299D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2718 DUP2 PUSH2 0x26E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2735 DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2751 JUMPI PUSH2 0x2750 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275F DUP5 DUP3 DUP6 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x277D DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2798 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2774 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP2 EQ PUSH2 0x27BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27CE DUP2 PUSH2 0x27A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27EA JUMPI PUSH2 0x27E9 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27F8 DUP5 DUP3 DUP6 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH2 0x2841 PUSH2 0x283C DUP5 PUSH2 0x2801 JUMP JUMPDEST PUSH2 0x2821 JUMP JUMPDEST PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2858 DUP3 PUSH2 0x282B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286A DUP3 PUSH2 0x284D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287A DUP2 PUSH2 0x285F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2889 DUP2 PUSH2 0x279E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B4 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x28CF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x28DC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x28E9 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x28F6 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x28AB JUMP JUMPDEST PUSH2 0x2903 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28AB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2947 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x292C 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 0x296F DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x2979 DUP2 DUP6 PUSH2 0x2918 JUMP JUMPDEST SWAP4 POP PUSH2 0x2989 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x2992 DUP2 PUSH2 0x2953 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 0x29B7 DUP2 DUP5 PUSH2 0x2964 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29CA DUP3 PUSH2 0x2801 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29DA DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x29F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x29D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A04 DUP2 PUSH2 0x29BF JUMP JUMPDEST DUP2 EQ PUSH2 0x2A0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A21 DUP2 PUSH2 0x29FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A3E JUMPI PUSH2 0x2A3D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A4C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A5D DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH2 0x2A7F PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A8E DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A9F DUP7 DUP3 DUP8 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2AB0 DUP7 DUP3 DUP8 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST PUSH2 0x2ADC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AF9 JUMPI PUSH2 0x2AF8 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B07 DUP5 DUP3 DUP6 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2B25 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B34 DUP2 PUSH2 0x2768 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B51 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6E JUMPI PUSH2 0x2B6D PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7C DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8D DUP6 DUP3 DUP7 ADD PUSH2 0x2B42 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD9 DUP3 PUSH2 0x2953 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF7 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0B PUSH2 0x26CF JUMP JUMPDEST SWAP1 POP PUSH2 0x2C17 DUP3 DUP3 PUSH2 0x2BD0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2C37 JUMPI PUSH2 0x2C36 PUSH2 0x2BA1 JUMP JUMPDEST JUMPDEST PUSH2 0x2C40 DUP3 PUSH2 0x2953 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 0x2C6F PUSH2 0x2C6A DUP5 PUSH2 0x2C1C JUMP JUMPDEST PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2C8B JUMPI PUSH2 0x2C8A PUSH2 0x2B9C JUMP JUMPDEST JUMPDEST PUSH2 0x2C96 DUP5 DUP3 DUP6 PUSH2 0x2C4D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CB3 JUMPI PUSH2 0x2CB2 PUSH2 0x2B97 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2CC3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2C5C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2CE6 JUMPI PUSH2 0x2CE5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CF4 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2D05 DUP8 DUP3 DUP9 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2D16 DUP8 DUP3 DUP9 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D37 JUMPI PUSH2 0x2D36 PUSH2 0x26DE JUMP JUMPDEST JUMPDEST PUSH2 0x2D43 DUP8 DUP3 DUP9 ADD PUSH2 0x2C9E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2D58 DUP2 PUSH2 0x288F JUMP JUMPDEST DUP2 EQ PUSH2 0x2D63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D75 DUP2 PUSH2 0x2D4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D86 DUP3 PUSH2 0x29BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D96 DUP2 PUSH2 0x2D7B JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2DB3 DUP2 PUSH2 0x2D8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI PUSH2 0x2DD5 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2DE4 DUP10 DUP3 DUP11 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2DF5 DUP10 DUP3 DUP11 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2E06 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2E17 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2E28 DUP10 DUP3 DUP11 ADD PUSH2 0x2D66 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2E39 DUP10 DUP3 DUP11 ADD PUSH2 0x2DA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E5D JUMPI PUSH2 0x2E5C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E6B DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E7C DUP6 DUP3 DUP7 ADD PUSH2 0x27BF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E9D JUMPI PUSH2 0x2E9C PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EAB DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2EBC DUP6 DUP3 DUP7 ADD PUSH2 0x2A12 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2F0D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2F20 JUMPI PUSH2 0x2F1F PUSH2 0x2EC6 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F82 PUSH1 0x21 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F8D DUP3 PUSH2 0x2F26 JUMP JUMPDEST PUSH1 0x40 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 0x2FB1 DUP2 PUSH2 0x2F75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3014 PUSH1 0x3D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x301F DUP3 PUSH2 0x2FB8 JUMP JUMPDEST PUSH1 0x40 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 0x3043 DUP2 PUSH2 0x3007 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A6 PUSH1 0x2D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x30B1 DUP3 PUSH2 0x304A JUMP JUMPDEST PUSH1 0x40 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 0x30D5 DUP2 PUSH2 0x3099 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3112 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x311D DUP3 PUSH2 0x30DC 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 0x3141 DUP2 PUSH2 0x3105 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317E PUSH1 0x10 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3189 DUP3 PUSH2 0x3148 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 0x31AD DUP2 PUSH2 0x3171 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EA PUSH1 0x1A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x31F5 DUP3 PUSH2 0x31B4 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 0x3219 DUP2 PUSH2 0x31DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325A DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3265 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x327D JUMPI PUSH2 0x327C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B9 PUSH1 0x18 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x32C4 DUP3 PUSH2 0x3283 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 0x32E8 DUP2 PUSH2 0x32AC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334B PUSH1 0x29 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3356 DUP3 PUSH2 0x32EF JUMP JUMPDEST PUSH1 0x40 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 0x337A DUP2 PUSH2 0x333E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x338C DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3397 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x33AF JUMPI PUSH2 0x33AE PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x737461727454696D652063616E6E6F74206265206F6E20746865207061737400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33EB PUSH1 0x1F DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F6 DUP3 PUSH2 0x33B5 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 0x341A DUP2 PUSH2 0x33DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3457 PUSH1 0x16 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3462 DUP3 PUSH2 0x3421 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 0x3486 DUP2 PUSH2 0x344A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6475726174696F6E206E6565647320746F206265206D6F7265207468616E2063 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C69666600000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34E9 PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F4 DUP3 PUSH2 0x348D JUMP JUMPDEST PUSH1 0x40 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 0x3518 DUP2 PUSH2 0x34DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352A DUP3 PUSH2 0x288F JUMP JUMPDEST SWAP2 POP PUSH2 0x3535 DUP4 PUSH2 0x288F JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x355D JUMPI PUSH2 0x355C PUSH2 0x3220 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356E DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x35A0 JUMPI PUSH2 0x359F PUSH2 0x3220 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C1 DUP3 PUSH2 0x290D JUMP JUMPDEST PUSH2 0x35CB DUP2 DUP6 PUSH2 0x35AB JUMP JUMPDEST SWAP4 POP PUSH2 0x35DB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35F3 DUP3 DUP6 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP PUSH2 0x35FF DUP3 DUP5 PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3616 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3621 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x362F DUP2 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3646 JUMPI PUSH2 0x3645 PUSH2 0x3220 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3687 DUP3 PUSH2 0x279E JUMP JUMPDEST SWAP2 POP PUSH2 0x3692 DUP4 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x36A2 JUMPI PUSH2 0x36A1 PUSH2 0x364D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3709 PUSH1 0x25 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3714 DUP3 PUSH2 0x36AD JUMP JUMPDEST PUSH1 0x40 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 0x3738 DUP2 PUSH2 0x36FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379B PUSH1 0x24 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x37A6 DUP3 PUSH2 0x373F JUMP JUMPDEST PUSH1 0x40 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 0x37CA DUP2 PUSH2 0x378E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x37E6 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x37F3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3830 PUSH1 0x19 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x383B DUP3 PUSH2 0x37FA 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 0x385F DUP2 PUSH2 0x3823 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C2 PUSH1 0x32 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x38CD DUP3 PUSH2 0x3866 JUMP JUMPDEST PUSH1 0x40 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 0x38F1 DUP2 PUSH2 0x38B5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x392E PUSH1 0x20 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3939 DUP3 PUSH2 0x38F8 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 0x395D DUP2 PUSH2 0x3921 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x399A PUSH1 0x1C DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x39A5 DUP3 PUSH2 0x3964 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 0x39C9 DUP2 PUSH2 0x398D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x39E5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39F2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x39FF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2880 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3A16 DUP2 PUSH2 0x2B2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A32 JUMPI PUSH2 0x3A31 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x3A07 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA5 PUSH1 0x2A DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AB0 DUP3 PUSH2 0x3A49 JUMP JUMPDEST PUSH1 0x40 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 0x3AD4 DUP2 PUSH2 0x3A98 JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x3B02 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3B0C DUP2 DUP6 PUSH2 0x3AE6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST PUSH2 0x3B25 DUP2 PUSH2 0x2953 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3B45 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B52 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x29D1 JUMP JUMPDEST PUSH2 0x3B5F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2880 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3B71 DUP2 DUP5 PUSH2 0x3AF7 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3B8B DUP2 PUSH2 0x270F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA7 JUMPI PUSH2 0x3BA6 PUSH2 0x26D9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3BB5 DUP5 DUP3 DUP6 ADD PUSH2 0x3B7C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1A PUSH1 0x26 DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3C25 DUP3 PUSH2 0x3BBE JUMP JUMPDEST PUSH1 0x40 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 0x3C49 DUP2 PUSH2 0x3C0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C66 DUP3 PUSH2 0x3ADB JUMP JUMPDEST PUSH2 0x3C70 DUP2 DUP6 PUSH2 0x3C50 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2929 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C98 DUP3 DUP5 PUSH2 0x3C5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CD9 PUSH1 0x1D DUP4 PUSH2 0x2918 JUMP JUMPDEST SWAP2 POP PUSH2 0x3CE4 DUP3 PUSH2 0x3CA3 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 0x3D08 DUP2 PUSH2 0x3CCC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x29 0xCC 0xB4 0xD7 SAR MLOAD 0xCB DIV PUSH14 0x97D5B0FCCA978FD585CBF5594A67 0x4A DUP8 DUP5 PUSH10 0x20D1E45264736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:3640:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:267:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:50:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;2471:98:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;873:474:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2642:250:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2190:219:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1828:224:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:233:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1332:839:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2221:472:20;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:163:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:267:17;3350:14;3402:26;3387:41;;;:11;:41;;;;:81;;;;3432:36;3456:11;3432:23;:36::i;:::-;3387:81;3380:88;;3208:267;;;:::o;524:50:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2471:98:6:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;873:474:17:-;944:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;991:10:::1;971:30;;:16;979:7;971;:16::i;:::-;:30;;;963:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:21;1056:24;1072:7;1056:15;:24::i;:::-;1032:48;;1114:1;1098:13;:17;1090:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1185:10;1162:49;;1176:7;1162:49;1197:13;1162:49;;;;;;:::i;:::-;;;;;;;;1249:13;1222:14;:23;1237:7;1222:23;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;1272:68;1314:10;1326:13;1279:20;1291:7;1279:11;:20::i;:::-;1272:41;;;;:68;;;;;:::i;:::-;953:394;873:474:::0;;:::o;5004:179:6:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2642:250:17:-;2782:20;2804:18;2756:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:19:::1;2857:7;2846:10;:19::i;:::-;2867:17;2876:7;2867:8;:17::i;:::-;2838:47;;;;2642:250:::0;;;;:::o;2190:219:6:-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;1828:224:17:-;1968:14;1942:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2024:21:::1;2037:7;2024:12;:21::i;:::-;2005:16;2013:7;2005;:16::i;:::-;:40;;;;:::i;:::-;1998:47;;1828:224:::0;;;;:::o;2385:207::-;2525:14;2499:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2562:14:::1;:23;2577:7;2562:23;;;;;;;;;;;;2555:30;;2385:207:::0;;;;:::o;2942:158::-;3040:13;3022:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3072:21:::1;3085:7;3072:12;:21::i;:::-;3065:28;;2942:158:::0;;;;:::o;2633:102:6:-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;2102:233:17:-;2244:14;2218:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:14:::1;:23;2320:7;2305:23;;;;;;;;;;;;2281:21;2294:7;2281:12;:21::i;:::-;:47;;;;:::i;:::-;2274:54;;2102:233:::0;;;;:::o;4169:153:6:-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;1332:839:20:-;1542:15;1529:9;:28;;;;1521:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1625:1;1611:16;;:2;:16;;;1603:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1681:8;1672:17;;:5;:17;;;;1664:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1741:18;1762:15;;1741:36;;1814:198;;;;;;;;1853:5;1814:198;;;;;;1880:6;1814:198;;;;1911:9;1814:198;;;;;;1955:8;1943:9;:20;;;;:::i;:::-;1814:198;;;;;;1996:5;1984:9;:17;;;;:::i;:::-;1814:198;;;;;1788:11;:23;1800:10;1788:23;;;;;;;;;;;:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:15;;:17;;;;;;;;;:::i;:::-;;;;;;2050:21;2056:2;2060:10;2050:5;:21::i;:::-;2081:83;2130:10;2150:4;2157:6;2088:23;2100:10;2088:11;:23::i;:::-;2081:48;;;;:83;;;;;;:::i;:::-;1511:660;1332:839;;;;;;:::o;2801:276:6:-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;2221:472:20:-;2384:14;2358:7;759:16:17;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2430:15:20::1;2437:7;2430:6;:15::i;:::-;2418:9;:27;2414:66;;;2468:1;2461:8;;;;2414:66;2505:17;2514:7;2505:8;:17::i;:::-;2493:9;:29;2489:83;;;2545:16;2553:7;2545;:16::i;:::-;2538:23;;;;2489:83;2666:19;2677:7;2666:10;:19::i;:::-;2646:17;2655:7;2646:8;:17::i;:::-;:39;;;;:::i;:::-;2621:19;2632:7;2621:10;:19::i;:::-;2609:9;:31;;;;:::i;:::-;2589:16;2597:7;2589;:16::i;:::-;:52;;;;:::i;:::-;2588:98;;;;:::i;:::-;2581:105;;815:1:17;2221:472:20::0;;;;;:::o;1397:163:17:-;1476:14;1509:44;1528:7;1537:15;1509:18;:44::i;:::-;1502:51;;1397:163;;;:::o;4388:162:6:-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;1570:300::-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;13466:133::-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;7256:126::-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;763:205:5:-;875:86;895:5;925:23;;;950:2;954:5;902:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;:::-;763:205;;;:::o;3111:132:20:-;3180:7;3206:11;:20;3218:7;3206:20;;;;;;;;;;;:30;;;;;;;;;;;;3199:37;;;;3111:132;;;:::o;3292:128::-;3359:7;3385:11;:20;3397:7;3385:20;;;;;;;;;;;:28;;;;;;;;;;;;3378:35;;;;3292:128;;;:::o;6838:115:6:-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;2936:126:20:-;3002:7;3028:11;:20;3040:7;3028:20;;;;;;;;;;;:27;;;3021:34;;2936:126;;;:::o;2742:145::-;2813:7;2847:11;:20;2859:7;2847:20;;;;;;;;;;;:32;;;;;;;;;;;;2832:48;;2742:145;;;:::o;13075:307:6:-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;9091:920::-;9184:1;9170:16;;:2;:16;;;9162:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:16;9250:7;9242;:16::i;:::-;9241:17;9233:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;9446:16;9454:7;9446;:16::i;:::-;9445:17;9437:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:1;9837:9;:13;9847:2;9837:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9895:2;9876:7;:16;9884:7;9876:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9938:7;9934:2;9913:33;;9930:1;9913:33;;;;;;;;;;;;9957:47;9985:1;9989:2;9993:7;10002:1;9957:19;:47::i;:::-;9091:920;;:::o;974:241:5:-;1112:96;1132:5;1162:27;;;1191:4;1197:2;1201:5;1139:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:19;:96::i;:::-;974:241;;;;:::o;3319:92:6:-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;3611:115:20:-;3667:7;3693:11;:20;3705:7;3693:20;;;;;;;;;;;:26;;;;;;;;;;;;3686:33;;;;3611:115;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;15698:154:6:-;;;;;:::o;16558:153::-;;;;;:::o;3747:706:5:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4166:95;;4295:1;4275:10;:17;:21;4271:176;;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:176;3817:636;3747:706;;:::o;14151:831:6:-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;3873:223:10:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;;3873:223;;;;;:::o;1175:320::-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;4960:446::-;5125:12;5182:5;5157:21;:30;;5149:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5241:12;5255:23;5282:6;:11;;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;;;;4960:446;;;;;;:::o;7466:628::-;7646:12;7674:7;7670:418;;;7722:1;7701:10;:17;:22;7697:286;;7916:18;7927:6;7916:10;:18::i;:::-;7908:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:286;8003:10;7996:17;;;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;;:::o;8616:540::-;8795:1;8775:10;:17;:21;8771:379;;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:75:22;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:60::-;2369:3;2390:5;2383:12;;2341:60;;;:::o;2407:142::-;2457:9;2490:53;2508:34;2517:24;2535:5;2517:24;:::i;:::-;2508:34;:::i;:::-;2490:53;:::i;:::-;2477:66;;2407:142;;;:::o;2555:126::-;2605:9;2638:37;2669:5;2638:37;:::i;:::-;2625:50;;2555:126;;;:::o;2687:140::-;2751:9;2784:37;2815:5;2784:37;:::i;:::-;2771:50;;2687:140;;;:::o;2833:159::-;2934:51;2979:5;2934:51;:::i;:::-;2929:3;2922:64;2833:159;;:::o;2998:118::-;3085:24;3103:5;3085:24;:::i;:::-;3080:3;3073:37;2998:118;;:::o;3122:::-;3159:7;3199:34;3192:5;3188:46;3177:57;;3122:118;;;:::o;3246:::-;3333:24;3351:5;3333:24;:::i;:::-;3328:3;3321:37;3246:118;;:::o;3370:692::-;3589:4;3627:3;3616:9;3612:19;3604:27;;3641:85;3723:1;3712:9;3708:17;3699:6;3641:85;:::i;:::-;3736:72;3804:2;3793:9;3789:18;3780:6;3736:72;:::i;:::-;3818;3886:2;3875:9;3871:18;3862:6;3818:72;:::i;:::-;3900;3968:2;3957:9;3953:18;3944:6;3900:72;:::i;:::-;3982:73;4050:3;4039:9;4035:19;4026:6;3982:73;:::i;:::-;3370:692;;;;;;;;:::o;4068:99::-;4120:6;4154:5;4148:12;4138:22;;4068:99;;;:::o;4173:169::-;4257:11;4291:6;4286:3;4279:19;4331:4;4326:3;4322:14;4307:29;;4173:169;;;;:::o;4348:246::-;4429:1;4439:113;4453:6;4450:1;4447:13;4439:113;;;4538:1;4533:3;4529:11;4523:18;4519:1;4514:3;4510:11;4503:39;4475:2;4472:1;4468:10;4463:15;;4439:113;;;4586:1;4577:6;4572:3;4568:16;4561:27;4410:184;4348:246;;;:::o;4600:102::-;4641:6;4692:2;4688:7;4683:2;4676:5;4672:14;4668:28;4658:38;;4600:102;;;:::o;4708:377::-;4796:3;4824:39;4857:5;4824:39;:::i;:::-;4879:71;4943:6;4938:3;4879:71;:::i;:::-;4872:78;;4959:65;5017:6;5012:3;5005:4;4998:5;4994:16;4959:65;:::i;:::-;5049:29;5071:6;5049:29;:::i;:::-;5044:3;5040:39;5033:46;;4800:285;4708:377;;;;:::o;5091:313::-;5204:4;5242:2;5231:9;5227:18;5219:26;;5291:9;5285:4;5281:20;5277:1;5266:9;5262:17;5255:47;5319:78;5392:4;5383:6;5319:78;:::i;:::-;5311:86;;5091:313;;;;:::o;5410:96::-;5447:7;5476:24;5494:5;5476:24;:::i;:::-;5465:35;;5410:96;;;:::o;5512:118::-;5599:24;5617:5;5599:24;:::i;:::-;5594:3;5587:37;5512:118;;:::o;5636:222::-;5729:4;5767:2;5756:9;5752:18;5744:26;;5780:71;5848:1;5837:9;5833:17;5824:6;5780:71;:::i;:::-;5636:222;;;;:::o;5864:122::-;5937:24;5955:5;5937:24;:::i;:::-;5930:5;5927:35;5917:63;;5976:1;5973;5966:12;5917:63;5864:122;:::o;5992:139::-;6038:5;6076:6;6063:20;6054:29;;6092:33;6119:5;6092:33;:::i;:::-;5992:139;;;;:::o;6137:474::-;6205:6;6213;6262:2;6250:9;6241:7;6237:23;6233:32;6230:119;;;6268:79;;:::i;:::-;6230:119;6388:1;6413:53;6458:7;6449:6;6438:9;6434:22;6413:53;:::i;:::-;6403:63;;6359:117;6515:2;6541:53;6586:7;6577:6;6566:9;6562:22;6541:53;:::i;:::-;6531:63;;6486:118;6137:474;;;;;:::o;6617:619::-;6694:6;6702;6710;6759:2;6747:9;6738:7;6734:23;6730:32;6727:119;;;6765:79;;:::i;:::-;6727:119;6885:1;6910:53;6955:7;6946:6;6935:9;6931:22;6910:53;:::i;:::-;6900:63;;6856:117;7012:2;7038:53;7083:7;7074:6;7063:9;7059:22;7038:53;:::i;:::-;7028:63;;6983:118;7140:2;7166:53;7211:7;7202:6;7191:9;7187:22;7166:53;:::i;:::-;7156:63;;7111:118;6617:619;;;;;:::o;7242:332::-;7363:4;7401:2;7390:9;7386:18;7378:26;;7414:71;7482:1;7471:9;7467:17;7458:6;7414:71;:::i;:::-;7495:72;7563:2;7552:9;7548:18;7539:6;7495:72;:::i;:::-;7242:332;;;;;:::o;7580:329::-;7639:6;7688:2;7676:9;7667:7;7663:23;7659:32;7656:119;;;7694:79;;:::i;:::-;7656:119;7814:1;7839:53;7884:7;7875:6;7864:9;7860:22;7839:53;:::i;:::-;7829:63;;7785:117;7580:329;;;;:::o;7915:222::-;8008:4;8046:2;8035:9;8031:18;8023:26;;8059:71;8127:1;8116:9;8112:17;8103:6;8059:71;:::i;:::-;7915:222;;;;:::o;8143:116::-;8213:21;8228:5;8213:21;:::i;:::-;8206:5;8203:32;8193:60;;8249:1;8246;8239:12;8193:60;8143:116;:::o;8265:133::-;8308:5;8346:6;8333:20;8324:29;;8362:30;8386:5;8362:30;:::i;:::-;8265:133;;;;:::o;8404:468::-;8469:6;8477;8526:2;8514:9;8505:7;8501:23;8497:32;8494:119;;;8532:79;;:::i;:::-;8494:119;8652:1;8677:53;8722:7;8713:6;8702:9;8698:22;8677:53;:::i;:::-;8667:63;;8623:117;8779:2;8805:50;8847:7;8838:6;8827:9;8823:22;8805:50;:::i;:::-;8795:60;;8750:115;8404:468;;;;;:::o;8878:117::-;8987:1;8984;8977:12;9001:117;9110:1;9107;9100:12;9124:180;9172:77;9169:1;9162:88;9269:4;9266:1;9259:15;9293:4;9290:1;9283:15;9310:281;9393:27;9415:4;9393:27;:::i;:::-;9385:6;9381:40;9523:6;9511:10;9508:22;9487:18;9475:10;9472:34;9469:62;9466:88;;;9534:18;;:::i;:::-;9466:88;9574:10;9570:2;9563:22;9353:238;9310:281;;:::o;9597:129::-;9631:6;9658:20;;:::i;:::-;9648:30;;9687:33;9715:4;9707:6;9687:33;:::i;:::-;9597:129;;;:::o;9732:307::-;9793:4;9883:18;9875:6;9872:30;9869:56;;;9905:18;;:::i;:::-;9869:56;9943:29;9965:6;9943:29;:::i;:::-;9935:37;;10027:4;10021;10017:15;10009:23;;9732:307;;;:::o;10045:146::-;10142:6;10137:3;10132;10119:30;10183:1;10174:6;10169:3;10165:16;10158:27;10045:146;;;:::o;10197:423::-;10274:5;10299:65;10315:48;10356:6;10315:48;:::i;:::-;10299:65;:::i;:::-;10290:74;;10387:6;10380:5;10373:21;10425:4;10418:5;10414:16;10463:3;10454:6;10449:3;10445:16;10442:25;10439:112;;;10470:79;;:::i;:::-;10439:112;10560:54;10607:6;10602:3;10597;10560:54;:::i;:::-;10280:340;10197:423;;;;;:::o;10639:338::-;10694:5;10743:3;10736:4;10728:6;10724:17;10720:27;10710:122;;10751:79;;:::i;:::-;10710:122;10868:6;10855:20;10893:78;10967:3;10959:6;10952:4;10944:6;10940:17;10893:78;:::i;:::-;10884:87;;10700:277;10639:338;;;;:::o;10983:943::-;11078:6;11086;11094;11102;11151:3;11139:9;11130:7;11126:23;11122:33;11119:120;;;11158:79;;:::i;:::-;11119:120;11278:1;11303:53;11348:7;11339:6;11328:9;11324:22;11303:53;:::i;:::-;11293:63;;11249:117;11405:2;11431:53;11476:7;11467:6;11456:9;11452:22;11431:53;:::i;:::-;11421:63;;11376:118;11533:2;11559:53;11604:7;11595:6;11584:9;11580:22;11559:53;:::i;:::-;11549:63;;11504:118;11689:2;11678:9;11674:18;11661:32;11720:18;11712:6;11709:30;11706:117;;;11742:79;;:::i;:::-;11706:117;11847:62;11901:7;11892:6;11881:9;11877:22;11847:62;:::i;:::-;11837:72;;11632:287;10983:943;;;;;;;:::o;11932:122::-;12005:24;12023:5;12005:24;:::i;:::-;11998:5;11995:35;11985:63;;12044:1;12041;12034:12;11985:63;11932:122;:::o;12060:139::-;12106:5;12144:6;12131:20;12122:29;;12160:33;12187:5;12160:33;:::i;:::-;12060:139;;;;:::o;12205:110::-;12256:7;12285:24;12303:5;12285:24;:::i;:::-;12274:35;;12205:110;;;:::o;12321:150::-;12408:38;12440:5;12408:38;:::i;:::-;12401:5;12398:49;12388:77;;12461:1;12458;12451:12;12388:77;12321:150;:::o;12477:167::-;12537:5;12575:6;12562:20;12553:29;;12591:47;12632:5;12591:47;:::i;:::-;12477:167;;;;:::o;12650:1085::-;12768:6;12776;12784;12792;12800;12808;12857:3;12845:9;12836:7;12832:23;12828:33;12825:120;;;12864:79;;:::i;:::-;12825:120;12984:1;13009:53;13054:7;13045:6;13034:9;13030:22;13009:53;:::i;:::-;12999:63;;12955:117;13111:2;13137:53;13182:7;13173:6;13162:9;13158:22;13137:53;:::i;:::-;13127:63;;13082:118;13239:2;13265:53;13310:7;13301:6;13290:9;13286:22;13265:53;:::i;:::-;13255:63;;13210:118;13367:2;13393:53;13438:7;13429:6;13418:9;13414:22;13393:53;:::i;:::-;13383:63;;13338:118;13495:3;13522:53;13567:7;13558:6;13547:9;13543:22;13522:53;:::i;:::-;13512:63;;13466:119;13624:3;13651:67;13710:7;13701:6;13690:9;13686:22;13651:67;:::i;:::-;13641:77;;13595:133;12650:1085;;;;;;;;:::o;13741:474::-;13809:6;13817;13866:2;13854:9;13845:7;13841:23;13837:32;13834:119;;;13872:79;;:::i;:::-;13834:119;13992:1;14017:53;14062:7;14053:6;14042:9;14038:22;14017:53;:::i;:::-;14007:63;;13963:117;14119:2;14145:53;14190:7;14181:6;14170:9;14166:22;14145:53;:::i;:::-;14135:63;;14090:118;13741:474;;;;;:::o;14221:::-;14289:6;14297;14346:2;14334:9;14325:7;14321:23;14317:32;14314:119;;;14352:79;;:::i;:::-;14314:119;14472:1;14497:53;14542:7;14533:6;14522:9;14518:22;14497:53;:::i;:::-;14487:63;;14443:117;14599:2;14625:53;14670:7;14661:6;14650:9;14646:22;14625:53;:::i;:::-;14615:63;;14570:118;14221:474;;;;;:::o;14701:180::-;14749:77;14746:1;14739:88;14846:4;14843:1;14836:15;14870:4;14867:1;14860:15;14887:320;14931:6;14968:1;14962:4;14958:12;14948:22;;15015:1;15009:4;15005:12;15036:18;15026:81;;15092:4;15084:6;15080:17;15070:27;;15026:81;15154:2;15146:6;15143:14;15123:18;15120:38;15117:84;;15173:18;;:::i;:::-;15117:84;14938:269;14887:320;;;:::o;15213:220::-;15353:34;15349:1;15341:6;15337:14;15330:58;15422:3;15417:2;15409:6;15405:15;15398:28;15213:220;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:248::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:31;16440:2;16432:6;16428:15;16421:56;16236:248;:::o;16490:366::-;16632:3;16653:67;16717:2;16712:3;16653:67;:::i;:::-;16646:74;;16729:93;16818:3;16729:93;:::i;:::-;16847:2;16842:3;16838:12;16831:19;;16490:366;;;:::o;16862:419::-;17028:4;17066:2;17055:9;17051:18;17043:26;;17115:9;17109:4;17105:20;17101:1;17090:9;17086:17;17079:47;17143:131;17269:4;17143:131;:::i;:::-;17135:139;;16862:419;;;:::o;17287:232::-;17427:34;17423:1;17415:6;17411:14;17404:58;17496:15;17491:2;17483:6;17479:15;17472:40;17287:232;:::o;17525:366::-;17667:3;17688:67;17752:2;17747:3;17688:67;:::i;:::-;17681:74;;17764:93;17853:3;17764:93;:::i;:::-;17882:2;17877:3;17873:12;17866:19;;17525:366;;;:::o;17897:419::-;18063:4;18101:2;18090:9;18086:18;18078:26;;18150:9;18144:4;18140:20;18136:1;18125:9;18121:17;18114:47;18178:131;18304:4;18178:131;:::i;:::-;18170:139;;17897:419;;;:::o;18322:175::-;18462:27;18458:1;18450:6;18446:14;18439:51;18322:175;:::o;18503:366::-;18645:3;18666:67;18730:2;18725:3;18666:67;:::i;:::-;18659:74;;18742:93;18831:3;18742:93;:::i;:::-;18860:2;18855:3;18851:12;18844:19;;18503:366;;;:::o;18875:419::-;19041:4;19079:2;19068:9;19064:18;19056:26;;19128:9;19122:4;19118:20;19114:1;19103:9;19099:17;19092:47;19156:131;19282:4;19156:131;:::i;:::-;19148:139;;18875:419;;;:::o;19300:166::-;19440:18;19436:1;19428:6;19424:14;19417:42;19300:166;:::o;19472:366::-;19614:3;19635:67;19699:2;19694:3;19635:67;:::i;:::-;19628:74;;19711:93;19800:3;19711:93;:::i;:::-;19829:2;19824:3;19820:12;19813:19;;19472:366;;;:::o;19844:419::-;20010:4;20048:2;20037:9;20033:18;20025:26;;20097:9;20091:4;20087:20;20083:1;20072:9;20068:17;20061:47;20125:131;20251:4;20125:131;:::i;:::-;20117:139;;19844:419;;;:::o;20269:176::-;20409:28;20405:1;20397:6;20393:14;20386:52;20269:176;:::o;20451:366::-;20593:3;20614:67;20678:2;20673:3;20614:67;:::i;:::-;20607:74;;20690:93;20779:3;20690:93;:::i;:::-;20808:2;20803:3;20799:12;20792:19;;20451:366;;;:::o;20823:419::-;20989:4;21027:2;21016:9;21012:18;21004:26;;21076:9;21070:4;21066:20;21062:1;21051:9;21047:17;21040:47;21104:131;21230:4;21104:131;:::i;:::-;21096:139;;20823:419;;;:::o;21248:180::-;21296:77;21293:1;21286:88;21393:4;21390:1;21383:15;21417:4;21414:1;21407:15;21434:191;21474:3;21493:20;21511:1;21493:20;:::i;:::-;21488:25;;21527:20;21545:1;21527:20;:::i;:::-;21522:25;;21570:1;21567;21563:9;21556:16;;21591:3;21588:1;21585:10;21582:36;;;21598:18;;:::i;:::-;21582:36;21434:191;;;;:::o;21631:174::-;21771:26;21767:1;21759:6;21755:14;21748:50;21631:174;:::o;21811:366::-;21953:3;21974:67;22038:2;22033:3;21974:67;:::i;:::-;21967:74;;22050:93;22139:3;22050:93;:::i;:::-;22168:2;22163:3;22159:12;22152:19;;21811:366;;;:::o;22183:419::-;22349:4;22387:2;22376:9;22372:18;22364:26;;22436:9;22430:4;22426:20;22422:1;22411:9;22407:17;22400:47;22464:131;22590:4;22464:131;:::i;:::-;22456:139;;22183:419;;;:::o;22608:228::-;22748:34;22744:1;22736:6;22732:14;22725:58;22817:11;22812:2;22804:6;22800:15;22793:36;22608:228;:::o;22842:366::-;22984:3;23005:67;23069:2;23064:3;23005:67;:::i;:::-;22998:74;;23081:93;23170:3;23081:93;:::i;:::-;23199:2;23194:3;23190:12;23183:19;;22842:366;;;:::o;23214:419::-;23380:4;23418:2;23407:9;23403:18;23395:26;;23467:9;23461:4;23457:20;23453:1;23442:9;23438:17;23431:47;23495:131;23621:4;23495:131;:::i;:::-;23487:139;;23214:419;;;:::o;23639:194::-;23679:4;23699:20;23717:1;23699:20;:::i;:::-;23694:25;;23733:20;23751:1;23733:20;:::i;:::-;23728:25;;23777:1;23774;23770:9;23762:17;;23801:1;23795:4;23792:11;23789:37;;;23806:18;;:::i;:::-;23789:37;23639:194;;;;:::o;23839:181::-;23979:33;23975:1;23967:6;23963:14;23956:57;23839:181;:::o;24026:366::-;24168:3;24189:67;24253:2;24248:3;24189:67;:::i;:::-;24182:74;;24265:93;24354:3;24265:93;:::i;:::-;24383:2;24378:3;24374:12;24367:19;;24026:366;;;:::o;24398:419::-;24564:4;24602:2;24591:9;24587:18;24579:26;;24651:9;24645:4;24641:20;24637:1;24626:9;24622:17;24615:47;24679:131;24805:4;24679:131;:::i;:::-;24671:139;;24398:419;;;:::o;24823:172::-;24963:24;24959:1;24951:6;24947:14;24940:48;24823:172;:::o;25001:366::-;25143:3;25164:67;25228:2;25223:3;25164:67;:::i;:::-;25157:74;;25240:93;25329:3;25240:93;:::i;:::-;25358:2;25353:3;25349:12;25342:19;;25001:366;;;:::o;25373:419::-;25539:4;25577:2;25566:9;25562:18;25554:26;;25626:9;25620:4;25616:20;25612:1;25601:9;25597:17;25590:47;25654:131;25780:4;25654:131;:::i;:::-;25646:139;;25373:419;;;:::o;25798:223::-;25938:34;25934:1;25926:6;25922:14;25915:58;26007:6;26002:2;25994:6;25990:15;25983:31;25798:223;:::o;26027:366::-;26169:3;26190:67;26254:2;26249:3;26190:67;:::i;:::-;26183:74;;26266:93;26355:3;26266:93;:::i;:::-;26384:2;26379:3;26375:12;26368:19;;26027:366;;;:::o;26399:419::-;26565:4;26603:2;26592:9;26588:18;26580:26;;26652:9;26646:4;26642:20;26638:1;26627:9;26623:17;26616:47;26680:131;26806:4;26680:131;:::i;:::-;26672:139;;26399:419;;;:::o;26824:224::-;26864:3;26883:20;26901:1;26883:20;:::i;:::-;26878:25;;26917:20;26935:1;26917:20;:::i;:::-;26912:25;;26960:1;26957;26953:9;26946:16;;26983:34;26978:3;26975:43;26972:69;;;27021:18;;:::i;:::-;26972:69;26824:224;;;;:::o;27054:233::-;27093:3;27116:24;27134:5;27116:24;:::i;:::-;27107:33;;27162:66;27155:5;27152:77;27149:103;;27232:18;;:::i;:::-;27149:103;27279:1;27272:5;27268:13;27261:20;;27054:233;;;:::o;27293:148::-;27395:11;27432:3;27417:18;;27293:148;;;;:::o;27447:390::-;27553:3;27581:39;27614:5;27581:39;:::i;:::-;27636:89;27718:6;27713:3;27636:89;:::i;:::-;27629:96;;27734:65;27792:6;27787:3;27780:4;27773:5;27769:16;27734:65;:::i;:::-;27824:6;27819:3;27815:16;27808:23;;27557:280;27447:390;;;;:::o;27843:435::-;28023:3;28045:95;28136:3;28127:6;28045:95;:::i;:::-;28038:102;;28157:95;28248:3;28239:6;28157:95;:::i;:::-;28150:102;;28269:3;28262:10;;27843:435;;;;;:::o;28284:410::-;28324:7;28347:20;28365:1;28347:20;:::i;:::-;28342:25;;28381:20;28399:1;28381:20;:::i;:::-;28376:25;;28436:1;28433;28429:9;28458:30;28476:11;28458:30;:::i;:::-;28447:41;;28637:1;28628:7;28624:15;28621:1;28618:22;28598:1;28591:9;28571:83;28548:139;;28667:18;;:::i;:::-;28548:139;28332:362;28284:410;;;;:::o;28700:180::-;28748:77;28745:1;28738:88;28845:4;28842:1;28835:15;28869:4;28866:1;28859:15;28886:185;28926:1;28943:20;28961:1;28943:20;:::i;:::-;28938:25;;28977:20;28995:1;28977:20;:::i;:::-;28972:25;;29016:1;29006:35;;29021:18;;:::i;:::-;29006:35;29063:1;29060;29056:9;29051:14;;28886:185;;;;:::o;29077:224::-;29217:34;29213:1;29205:6;29201:14;29194:58;29286:7;29281:2;29273:6;29269:15;29262:32;29077:224;:::o;29307:366::-;29449:3;29470:67;29534:2;29529:3;29470:67;:::i;:::-;29463:74;;29546:93;29635:3;29546:93;:::i;:::-;29664:2;29659:3;29655:12;29648:19;;29307:366;;;:::o;29679:419::-;29845:4;29883:2;29872:9;29868:18;29860:26;;29932:9;29926:4;29922:20;29918:1;29907:9;29903:17;29896:47;29960:131;30086:4;29960:131;:::i;:::-;29952:139;;29679:419;;;:::o;30104:223::-;30244:34;30240:1;30232:6;30228:14;30221:58;30313:6;30308:2;30300:6;30296:15;30289:31;30104:223;:::o;30333:366::-;30475:3;30496:67;30560:2;30555:3;30496:67;:::i;:::-;30489:74;;30572:93;30661:3;30572:93;:::i;:::-;30690:2;30685:3;30681:12;30674:19;;30333:366;;;:::o;30705:419::-;30871:4;30909:2;30898:9;30894:18;30886:26;;30958:9;30952:4;30948:20;30944:1;30933:9;30929:17;30922:47;30986:131;31112:4;30986:131;:::i;:::-;30978:139;;30705:419;;;:::o;31130:332::-;31251:4;31289:2;31278:9;31274:18;31266:26;;31302:71;31370:1;31359:9;31355:17;31346:6;31302:71;:::i;:::-;31383:72;31451:2;31440:9;31436:18;31427:6;31383:72;:::i;:::-;31130:332;;;;;:::o;31468:175::-;31608:27;31604:1;31596:6;31592:14;31585:51;31468:175;:::o;31649:366::-;31791:3;31812:67;31876:2;31871:3;31812:67;:::i;:::-;31805:74;;31888:93;31977:3;31888:93;:::i;:::-;32006:2;32001:3;31997:12;31990:19;;31649:366;;;:::o;32021:419::-;32187:4;32225:2;32214:9;32210:18;32202:26;;32274:9;32268:4;32264:20;32260:1;32249:9;32245:17;32238:47;32302:131;32428:4;32302:131;:::i;:::-;32294:139;;32021:419;;;:::o;32446:237::-;32586:34;32582:1;32574:6;32570:14;32563:58;32655:20;32650:2;32642:6;32638:15;32631:45;32446:237;:::o;32689:366::-;32831:3;32852:67;32916:2;32911:3;32852:67;:::i;:::-;32845:74;;32928:93;33017:3;32928:93;:::i;:::-;33046:2;33041:3;33037:12;33030:19;;32689:366;;;:::o;33061:419::-;33227:4;33265:2;33254:9;33250:18;33242:26;;33314:9;33308:4;33304:20;33300:1;33289:9;33285:17;33278:47;33342:131;33468:4;33342:131;:::i;:::-;33334:139;;33061:419;;;:::o;33486:182::-;33626:34;33622:1;33614:6;33610:14;33603:58;33486:182;:::o;33674:366::-;33816:3;33837:67;33901:2;33896:3;33837:67;:::i;:::-;33830:74;;33913:93;34002:3;33913:93;:::i;:::-;34031:2;34026:3;34022:12;34015:19;;33674:366;;;:::o;34046:419::-;34212:4;34250:2;34239:9;34235:18;34227:26;;34299:9;34293:4;34289:20;34285:1;34274:9;34270:17;34263:47;34327:131;34453:4;34327:131;:::i;:::-;34319:139;;34046:419;;;:::o;34471:178::-;34611:30;34607:1;34599:6;34595:14;34588:54;34471:178;:::o;34655:366::-;34797:3;34818:67;34882:2;34877:3;34818:67;:::i;:::-;34811:74;;34894:93;34983:3;34894:93;:::i;:::-;35012:2;35007:3;35003:12;34996:19;;34655:366;;;:::o;35027:419::-;35193:4;35231:2;35220:9;35216:18;35208:26;;35280:9;35274:4;35270:20;35266:1;35255:9;35251:17;35244:47;35308:131;35434:4;35308:131;:::i;:::-;35300:139;;35027:419;;;:::o;35452:442::-;35601:4;35639:2;35628:9;35624:18;35616:26;;35652:71;35720:1;35709:9;35705:17;35696:6;35652:71;:::i;:::-;35733:72;35801:2;35790:9;35786:18;35777:6;35733:72;:::i;:::-;35815;35883:2;35872:9;35868:18;35859:6;35815:72;:::i;:::-;35452:442;;;;;;:::o;35900:137::-;35954:5;35985:6;35979:13;35970:22;;36001:30;36025:5;36001:30;:::i;:::-;35900:137;;;;:::o;36043:345::-;36110:6;36159:2;36147:9;36138:7;36134:23;36130:32;36127:119;;;36165:79;;:::i;:::-;36127:119;36285:1;36310:61;36363:7;36354:6;36343:9;36339:22;36310:61;:::i;:::-;36300:71;;36256:125;36043:345;;;;:::o;36394:229::-;36534:34;36530:1;36522:6;36518:14;36511:58;36603:12;36598:2;36590:6;36586:15;36579:37;36394:229;:::o;36629:366::-;36771:3;36792:67;36856:2;36851:3;36792:67;:::i;:::-;36785:74;;36868:93;36957:3;36868:93;:::i;:::-;36986:2;36981:3;36977:12;36970:19;;36629:366;;;:::o;37001:419::-;37167:4;37205:2;37194:9;37190:18;37182:26;;37254:9;37248:4;37244:20;37240:1;37229:9;37225:17;37218:47;37282:131;37408:4;37282:131;:::i;:::-;37274:139;;37001:419;;;:::o;37426:98::-;37477:6;37511:5;37505:12;37495:22;;37426:98;;;:::o;37530:168::-;37613:11;37647:6;37642:3;37635:19;37687:4;37682:3;37678:14;37663:29;;37530:168;;;;:::o;37704:373::-;37790:3;37818:38;37850:5;37818:38;:::i;:::-;37872:70;37935:6;37930:3;37872:70;:::i;:::-;37865:77;;37951:65;38009:6;38004:3;37997:4;37990:5;37986:16;37951:65;:::i;:::-;38041:29;38063:6;38041:29;:::i;:::-;38036:3;38032:39;38025:46;;37794:283;37704:373;;;;:::o;38083:640::-;38278:4;38316:3;38305:9;38301:19;38293:27;;38330:71;38398:1;38387:9;38383:17;38374:6;38330:71;:::i;:::-;38411:72;38479:2;38468:9;38464:18;38455:6;38411:72;:::i;:::-;38493;38561:2;38550:9;38546:18;38537:6;38493:72;:::i;:::-;38612:9;38606:4;38602:20;38597:2;38586:9;38582:18;38575:48;38640:76;38711:4;38702:6;38640:76;:::i;:::-;38632:84;;38083:640;;;;;;;:::o;38729:141::-;38785:5;38816:6;38810:13;38801:22;;38832:32;38858:5;38832:32;:::i;:::-;38729:141;;;;:::o;38876:349::-;38945:6;38994:2;38982:9;38973:7;38969:23;38965:32;38962:119;;;39000:79;;:::i;:::-;38962:119;39120:1;39145:63;39200:7;39191:6;39180:9;39176:22;39145:63;:::i;:::-;39135:73;;39091:127;38876:349;;;;:::o;39231:225::-;39371:34;39367:1;39359:6;39355:14;39348:58;39440:8;39435:2;39427:6;39423:15;39416:33;39231:225;:::o;39462:366::-;39604:3;39625:67;39689:2;39684:3;39625:67;:::i;:::-;39618:74;;39701:93;39790:3;39701:93;:::i;:::-;39819:2;39814:3;39810:12;39803:19;;39462:366;;;:::o;39834:419::-;40000:4;40038:2;40027:9;40023:18;40015:26;;40087:9;40081:4;40077:20;40073:1;40062:9;40058:17;40051:47;40115:131;40241:4;40115:131;:::i;:::-;40107:139;;39834:419;;;:::o;40259:147::-;40360:11;40397:3;40382:18;;40259:147;;;;:::o;40412:386::-;40516:3;40544:38;40576:5;40544:38;:::i;:::-;40598:88;40679:6;40674:3;40598:88;:::i;:::-;40591:95;;40695:65;40753:6;40748:3;40741:4;40734:5;40730:16;40695:65;:::i;:::-;40785:6;40780:3;40776:16;40769:23;;40520:278;40412:386;;;;:::o;40804:271::-;40934:3;40956:93;41045:3;41036:6;40956:93;:::i;:::-;40949:100;;41066:3;41059:10;;40804:271;;;;:::o;41081:179::-;41221:31;41217:1;41209:6;41205:14;41198:55;41081:179;:::o;41266:366::-;41408:3;41429:67;41493:2;41488:3;41429:67;:::i;:::-;41422:74;;41505:93;41594:3;41505:93;:::i;:::-;41623:2;41618:3;41614:12;41607:19;;41266:366;;;:::o;41638:419::-;41804:4;41842:2;41831:9;41827:18;41819:26;;41891:9;41885:4;41881:20;41877:1;41866:9;41862:17;41855:47;41919:131;42045:4;41919:131;:::i;:::-;41911:139;;41638:419;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "create(address,uint256,uint128,uint128,uint128,address)": "c196f42f", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestDetails(uint256)": "03101bfd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"duration\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"cliff\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"vestDetails\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"payoutToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"cliff\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"constructor\":{\"details\":\"See {IERC5725}.\"},\"create(address,uint256,uint128,uint128,uint128,address)\":{\"details\":\"Token amount should be approved to be transferred by this contract before executing create\",\"params\":{\"amount\":\"The total assets to be locked over time\",\"cliff\":\"The cliff duration in seconds\",\"duration\":\"The vesting duration in seconds\",\"startTime\":\"When the vesting starts in epoch timestamp\",\"to\":\"The recipient of the NFT\",\"token\":\"The ERC20 token to vest over time\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_tokenIdTracker\":{\"details\":\"tracker of current NFT id\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"create(address,uint256,uint128,uint128,uint128,address)\":{\"notice\":\"Creates a new vesting NFT and mints it\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/reference/LinearVestingNFT.sol\":\"LinearVestingNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]},\"contracts/reference/LinearVestingNFT.sol\":{\"keccak256\":\"0xcc0a9139c0438c3a336722311b5261968a1192270daff62edcebc7c99a9aa53c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://62bedbe1d5c8c3846aa476b65d6efb6097c53ff8371496def467e234dd656e86\",\"dweb:/ipfs/QmXqZPmLUntbKoxiYvxhjGpwzAa6ECPWaYr3SsRr6a6CMa\"]}},\"version\":1}" + } + }, + "contracts/reference/VestingNFT.sol": { + "VestingNFT": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "releaseTimestamp", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1182": { + "entryPoint": null, + "id": 1182, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_4441": { + "entryPoint": null, + "id": 4441, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 380, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 455, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 506, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 251, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 103, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 282, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1071, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 336, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 697, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1196, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 896, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1164, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 946, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 123, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 128, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 118, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 113, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 133, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 787, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1004, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 800, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 956, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 999, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8574:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:22", + "type": "" + } + ], + "src": "580:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:22" + }, + "nodeType": "YulIf", + "src": "1030:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:22", + "type": "" + } + ], + "src": "874:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:22", + "type": "" + } + ], + "src": "1161:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:22" + }, + "nodeType": "YulIf", + "src": "1434:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:22", + "type": "" + } + ], + "src": "1296:308:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1672:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1682:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1691:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1686:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1776:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1781:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1772:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1772:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1795:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1800:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1791:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1791:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1785:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "1785:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1765:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1765:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1712:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1715:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1709:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1709:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1723:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1725:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1734:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1737:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1730:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1725:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1705:3:22", + "statements": [] + }, + "src": "1701:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1834:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1830:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1830:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1823:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1823:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1823:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1654:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1664:6:22", + "type": "" + } + ], + "src": "1610:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1957:339:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1967:75:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2034:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1992:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "1992:49:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1976:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "1976:66:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1967:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2058:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2065:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2051:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2051:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2051:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2081:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2096:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2092:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2092:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2085:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2127:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2132:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2123:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2123:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2141:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2120:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2120:25:22" + }, + "nodeType": "YulIf", + "src": "2117:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2273:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2278:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2283:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2238:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "2238:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2238:52:22" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1930:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1935:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1943:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1951:5:22", + "type": "" + } + ], + "src": "1862:434:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2389:282:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2438:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2440:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2440:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2440:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2417:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2425:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2413:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2413:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2432:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2409:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2409:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2402:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2402:35:22" + }, + "nodeType": "YulIf", + "src": "2399:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2530:27:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2550:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2544:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2544:13:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2534:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2566:99:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2638:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2646:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2634:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2653:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2661:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "2575:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "2575:90:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2566:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2367:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2375:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2383:5:22", + "type": "" + } + ], + "src": "2316:355:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2791:739:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2837:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2839:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "2839:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2839:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2812:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2821:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2808:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2833:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2804:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2804:32:22" + }, + "nodeType": "YulIf", + "src": "2801:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2930:291:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2945:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2969:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2980:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2965:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2965:17:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2959:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "2959:24:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2949:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3030:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3032:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3032:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3032:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3002:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3010:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2999:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "2999:30:22" + }, + "nodeType": "YulIf", + "src": "2996:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3127:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3183:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3194:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3179:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3179:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3203:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3137:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3137:74:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3127:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3231:292:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3246:39:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3270:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3281:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3266:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3266:18:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3260:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3260:25:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3250:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3332:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3334:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "3334:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3334:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3304:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3312:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3301:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "3301:30:22" + }, + "nodeType": "YulIf", + "src": "3298:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "3429:84:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3485:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3496:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3481:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3481:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3505:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3439:41:22" + }, + "nodeType": "YulFunctionCall", + "src": "3439:74:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3429:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2753:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2764:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2776:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2784:6:22", + "type": "" + } + ], + "src": "2677:853:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3595:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3606:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3622:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3616:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "3616:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3606:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3578:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3588:6:22", + "type": "" + } + ], + "src": "3536:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3669:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3689:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3679:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3679:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3679:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3783:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3786:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3776:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3776:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3776:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3807:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3810:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3800:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3800:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3800:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3878:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3888:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3902:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3908:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3898:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3888:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3919:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3949:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3945:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3945:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3923:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3996:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4010:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4024:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4020:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4020:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4010:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3976:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3969:26:22" + }, + "nodeType": "YulIf", + "src": "3966:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4099:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "4113:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "4113:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4113:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4063:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4086:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4094:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4083:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4083:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4060:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4060:38:22" + }, + "nodeType": "YulIf", + "src": "4057:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3862:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3871:6:22", + "type": "" + } + ], + "src": "3827:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4207:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4217:11:22", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4225:3:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4217:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:1:22", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "4248:3:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4238:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4238:14:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4238:14:22" + }, + { + "nodeType": "YulAssignment", + "src": "4261:26:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4279:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4282:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "4269:9:22" + }, + "nodeType": "YulFunctionCall", + "src": "4269:18:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4261:4:22" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "4194:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4202:4:22", + "type": "" + } + ], + "src": "4153:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4344:49:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4354:33:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4372:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4368:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4384:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4364:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4364:23:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4354:6:22" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4327:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4337:6:22", + "type": "" + } + ], + "src": "4300:93:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4452:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4462:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "4487:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4493:5:22" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "4483:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4483:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "4462:8:22" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "4427:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4433:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "4443:8:22", + "type": "" + } + ], + "src": "4399:107:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4588:317:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4598:35:22", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4619:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4631:1:22", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4615:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4615:18:22" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4602:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4642:109:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4673:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4684:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4654:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4654:97:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4646:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4760:51:22", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4791:9:22" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4802:8:22" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4772:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:22" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4760:8:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4820:30:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4833:5:22" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4844:4:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4840:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4829:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4829:21:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4820:5:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4859:40:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4872:5:22" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4883:8:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4893:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4879:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4879:19:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4869:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4869:30:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4859:6:22" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4549:5:22", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "4556:10:22", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4568:8:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4581:6:22", + "type": "" + } + ], + "src": "4512:393:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4956:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4966:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4977:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4966:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4938:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4948:7:22", + "type": "" + } + ], + "src": "4911:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5026:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5036:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5043:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5036:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5012:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5022:3:22", + "type": "" + } + ], + "src": "4994:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5120:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5130:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5188:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5170:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "5161:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "5161:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5143:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5143:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5130:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5100:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5110:9:22", + "type": "" + } + ], + "src": "5060:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5255:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5265:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5272:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5265:3:22" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5251:3:22", + "type": "" + } + ], + "src": "5208:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5365:193:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5375:63:22", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "5430:7:22" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5399:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5399:39:22" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "5379:16:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5454:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5494:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "5488:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:11:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5501:6:22" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "5533:16:22" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "5509:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "5509:41:22" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "5460:27:22" + }, + "nodeType": "YulFunctionCall", + "src": "5460:91:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5447:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5447:105:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5447:105:22" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5342:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5348:6:22", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "5356:7:22", + "type": "" + } + ], + "src": "5289:269:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5613:24:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5623:8:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:1:22", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5623:3:22" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5609:3:22", + "type": "" + } + ], + "src": "5564:73:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:136:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5706:46:22", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5720:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "5720:32:22" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5710:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5805:4:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5811:6:22" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5819:6:22" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5761:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5761:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5761:65:22" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5682:4:22", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5688:6:22", + "type": "" + } + ], + "src": "5643:189:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5888:136:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5955:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5999:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6006:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5969:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "5969:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5969:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5908:5:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5915:3:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5905:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5905:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5920:26:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5922:22:22", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5935:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5942:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5931:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5931:13:22" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5922:5:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5902:2:22", + "statements": [] + }, + "src": "5898:120:22" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5876:5:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5883:3:22", + "type": "" + } + ], + "src": "5838:186:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:464:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6135:431:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6149:54:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "6197:5:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6165:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "6165:38:22" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "6153:8:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6216:63:22", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6239:8:22" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6267:10:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6249:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6249:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6235:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6235:44:22" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "6220:11:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6436:27:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6438:23:22", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6453:8:22" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6438:11:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "6420:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6432:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6417:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6417:18:22" + }, + "nodeType": "YulIf", + "src": "6414:49:22" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "6505:11:22" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "6522:8:22" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6550:3:22" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "6532:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "6532:22:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6518:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6518:37:22" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "6476:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6476:80:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6476:80:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6131:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6123:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "6123:11:22" + }, + "nodeType": "YulIf", + "src": "6120:446:22" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "6085:5:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6092:3:22", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "6097:10:22", + "type": "" + } + ], + "src": "6030:543:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6642:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6652:37:22", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6677:4:22" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6683:5:22" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6673:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6673:16:22" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6652:8:22" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6617:4:22", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6623:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6633:8:22", + "type": "" + } + ], + "src": "6579:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6753:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6763:68:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6812:1:22", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6815:5:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6808:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6808:13:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6823:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6823:6:22" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6779:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "6779:51:22" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6775:56:22" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6767:4:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6840:25:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6854:4:22" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6860:4:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6850:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6850:15:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6840:6:22" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6730:4:22", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6736:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6746:6:22", + "type": "" + } + ], + "src": "6702:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6957:214:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:37:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7117:4:22" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7123:3:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7098:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "7098:29:22" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7090:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7136:29:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7147:4:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7157:1:22", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7160:3:22" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7153:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7153:11:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7144:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7144:21:22" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "7136:4:22" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6938:4:22", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6944:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6952:4:22", + "type": "" + } + ], + "src": "6876:295:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7268:1303:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7279:51:22", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7326:3:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7293:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "7293:37:22" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "7283:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7415:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7417:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "7417:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7417:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7387:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7395:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7384:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:30:22" + }, + "nodeType": "YulIf", + "src": "7381:56:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7447:52:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7493:4:22" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "7487:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7487:11:22" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "7461:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "7461:38:22" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "7451:6:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7592:4:22" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7598:6:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7606:6:22" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7546:45:22" + }, + "nodeType": "YulFunctionCall", + "src": "7546:67:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7546:67:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7623:18:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7640:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7627:9:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7651:17:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7664:4:22", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7651:9:22" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7715:611:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7729:37:22", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7748:6:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7760:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7756:9:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7744:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7744:22:22" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7733:7:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7780:51:22", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7826:4:22" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7794:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "7794:37:22" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7784:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7844:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7848:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7912:163:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7937:6:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7955:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7960:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7951:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7945:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "7945:26:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7930:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "7930:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7930:42:22" + }, + { + "nodeType": "YulAssignment", + "src": "7989:24:22", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8003:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8011:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7999:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7999:14:22" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7989:6:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8030:31:22", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8047:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8058:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8043:18:22" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8030:9:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7878:1:22" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7881:7:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7875:14:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7890:21:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7892:17:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7901:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7904:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7897:12:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7892:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7871:3:22", + "statements": [] + }, + "src": "7867:208:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:156:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8129:43:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8156:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8161:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8152:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8152:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8146:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8146:26:22" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "8133:9:22", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8196:6:22" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "8223:9:22" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8238:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8246:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8234:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8234:17:22" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8204:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "8204:48:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8189:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8189:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8189:64:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8094:7:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8103:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8091:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8091:19:22" + }, + "nodeType": "YulIf", + "src": "8088:179:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8287:4:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8301:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8309:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8297:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8297:14:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8293:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8293:22:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8280:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8280:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8280:36:22" + } + ] + }, + "nodeType": "YulCase", + "src": "7708:618:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7713:1:22", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:222:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8357:14:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8370:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8361:5:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8394:67:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8412:35:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8431:3:22" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8436:9:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8427:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8427:19:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8421:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "8421:26:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8412:5:22" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8387:6:22" + }, + "nodeType": "YulIf", + "src": "8384:77:22" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8481:4:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8547:6:22" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "8487:52:22" + }, + "nodeType": "YulFunctionCall", + "src": "8487:67:22" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8474:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8474:81:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:81:22" + } + ] + }, + "nodeType": "YulCase", + "src": "8335:230:22", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7688:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7696:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "7685:14:22" + }, + "nodeType": "YulSwitch", + "src": "7678:887:22" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "7257:4:22", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "7263:3:22", + "type": "" + } + ], + "src": "7176:1395:22" + } + ] + }, + "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 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 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_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := 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}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162003fdc38038062003fdc8339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613a1b80620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3FDC CODESIZE SUB DUP1 PUSH3 0x3FDC DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x1FA JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x4A SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0x5C SWAP2 SWAP1 PUSH3 0x4CA JUMP JUMPDEST POP POP POP POP POP PUSH3 0x5B1 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 PUSH3 0xD0 DUP3 PUSH3 0x85 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xF2 JUMPI PUSH3 0xF1 PUSH3 0x96 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x107 PUSH3 0x67 JUMP JUMPDEST SWAP1 POP PUSH3 0x115 DUP3 DUP3 PUSH3 0xC5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x138 JUMPI PUSH3 0x137 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x143 DUP3 PUSH3 0x85 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x170 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x153 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x193 PUSH3 0x18D DUP5 PUSH3 0x11A JUMP JUMPDEST PUSH3 0xFB JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1B2 JUMPI PUSH3 0x1B1 PUSH3 0x80 JUMP JUMPDEST JUMPDEST PUSH3 0x1BF DUP5 DUP3 DUP6 PUSH3 0x150 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1DF JUMPI PUSH3 0x1DE PUSH3 0x7B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1F1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x17C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x214 JUMPI PUSH3 0x213 PUSH3 0x71 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x235 JUMPI PUSH3 0x234 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x243 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x267 JUMPI PUSH3 0x266 PUSH3 0x76 JUMP JUMPDEST JUMPDEST PUSH3 0x275 DUP6 DUP3 DUP7 ADD PUSH3 0x1C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 PUSH3 0x2D2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E8 JUMPI PUSH3 0x2E7 PUSH3 0x28A 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 PUSH3 0x352 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x313 JUMP JUMPDEST PUSH3 0x35E DUP7 DUP4 PUSH3 0x313 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 PUSH3 0x3AB PUSH3 0x3A5 PUSH3 0x39F DUP5 PUSH3 0x376 JUMP JUMPDEST PUSH3 0x380 JUMP JUMPDEST PUSH3 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C7 DUP4 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x3DF PUSH3 0x3D6 DUP3 PUSH3 0x3B2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x320 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3F6 PUSH3 0x3E7 JUMP JUMPDEST PUSH3 0x403 DUP2 DUP5 DUP5 PUSH3 0x3BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x42B JUMPI PUSH3 0x41F PUSH1 0x0 DUP3 PUSH3 0x3EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x409 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x47A JUMPI PUSH3 0x444 DUP2 PUSH3 0x2EE JUMP JUMPDEST PUSH3 0x44F DUP5 PUSH3 0x303 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x45F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x477 PUSH3 0x46E DUP6 PUSH3 0x303 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x408 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 PUSH3 0x49F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x47F JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4BA DUP4 DUP4 PUSH3 0x48C JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4D5 DUP3 PUSH3 0x27F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4F1 JUMPI PUSH3 0x4F0 PUSH3 0x96 JUMP JUMPDEST JUMPDEST PUSH3 0x4FD DUP3 SLOAD PUSH3 0x2B9 JUMP JUMPDEST PUSH3 0x50A DUP3 DUP3 DUP6 PUSH3 0x42F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x542 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x52D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x539 DUP6 DUP3 PUSH3 0x4AC JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x552 DUP7 PUSH3 0x2EE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x57C 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 PUSH3 0x555 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x59C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x598 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x48C 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 PUSH2 0x3A1B DUP1 PUSH3 0x5C1 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 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x746B5D61 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x746B5D61 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x81D0526D EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3CE JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D4 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x258E JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x570 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x270D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x286C JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xE34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x377 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x395 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B8 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E3 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x418 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x2A6D JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x2BE2 JUMP JUMPDEST PUSH2 0x1088 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x450 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x480 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x569 JUMPI POP PUSH2 0x568 DUP3 PUSH2 0x126F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x607 SWAP1 PUSH2 0x2D14 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 0x633 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x680 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x655 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x680 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 0x663 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DB DUP3 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x74B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x742 SWAP1 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x76A PUSH2 0x139C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x799 JUMPI POP PUSH2 0x798 DUP2 PUSH2 0x793 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST JUMPDEST PUSH2 0x7D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7CF SWAP1 PUSH2 0x2E49 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7E2 DUP4 DUP4 PUSH2 0x13A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x7F8 PUSH2 0x7F2 PUSH2 0x139C JUMP JUMPDEST DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x837 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82E SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x842 DUP4 DUP4 DUP4 PUSH2 0x14F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x851 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x890 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x887 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8B0 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x906 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8FD SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x956 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94D SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x99D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C8 SWAP2 SWAP1 PUSH2 0x306E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA02 CALLER DUP3 PUSH2 0x9DD DUP7 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x182C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA22 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1088 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA34 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xA73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA6A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA7C DUP5 PUSH2 0x18B2 JUMP JUMPDEST PUSH2 0xA85 DUP6 PUSH2 0x1900 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA9B DUP4 PUSH2 0x194E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7C SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC32 SWAP1 PUSH2 0x31EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xC8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC86 SWAP1 PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xDE9 SWAP1 PUSH2 0x3278 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xDF8 DUP6 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xE2D CALLER ADDRESS DUP7 PUSH2 0xE07 DUP6 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1BA8 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xE40 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE76 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE88 DUP4 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0xE91 DUP5 PUSH2 0x1C31 JUMP JUMPDEST PUSH2 0xE9B SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEAF DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE5 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF16 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xF55 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4C SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF5E DUP4 PUSH2 0x1C51 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xF75 SWAP1 PUSH2 0x2D14 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 0xFA1 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFEE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFC3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFEE 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 0xFD1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1004 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1043 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1060 DUP5 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1084 PUSH2 0x107D PUSH2 0x139C JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1C91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1099 PUSH2 0x1093 PUSH2 0x139C JUMP JUMPDEST DUP4 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x10D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CF SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10E4 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10F5 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FF PUSH2 0x1E59 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x111F JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x114A JUMP JUMPDEST DUP1 PUSH2 0x1129 DUP5 PUSH2 0x1E70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x113A SWAP3 SWAP2 SWAP1 PUSH2 0x3330 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x115E DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x119D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1194 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11A6 DUP5 PUSH2 0x1900 JUMP JUMPDEST DUP4 LT PUSH2 0x11BC JUMPI PUSH2 0x11B5 DUP5 PUSH2 0x1C31 JUMP JUMPDEST SWAP2 POP PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D4 DUP3 TIMESTAMP PUSH2 0x1152 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x133A JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x134A JUMPI POP PUSH2 0x1349 DUP3 PUSH2 0x1F3E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x135A DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1390 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1417 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1469 DUP4 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x14AB JUMPI POP PUSH2 0x14AA DUP2 DUP6 PUSH2 0x11DB JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x14E9 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14D1 DUP5 PUSH2 0x68A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1512 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CE SWAP1 PUSH2 0x3458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1604 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1651 SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x17E6 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180D DUP4 PUSH2 0x194E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18AD DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x184B SWAP3 SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F1 SWAP1 PUSH2 0x34ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A03 DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A51 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST PUSH2 0x1A5A DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A91 SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1BA4 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1C2B DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1BC9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP1 PUSH2 0x35FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1DF0 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1E08 DUP5 DUP5 DUP5 PUSH2 0x14F2 JUMP JUMPDEST PUSH2 0x1E14 DUP5 DUP5 DUP5 DUP5 PUSH2 0x207B JUMP JUMPDEST PUSH2 0x1E53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4A SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E7F DUP5 PUSH2 0x2202 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E9E JUMPI PUSH2 0x1E9D PUSH2 0x2AB7 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 0x1ED0 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 0x1F33 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EDE JUMPI JUMPDEST DUP2 SWAP4 POP POP 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2016 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2355 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2076 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x36F2 JUMP JUMPDEST PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x206C SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x209C DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x236D JUMP JUMPDEST ISZERO PUSH2 0x21F5 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x20C5 PUSH2 0x139C JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3806 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2123 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 0x2120 SWAP2 SWAP1 PUSH2 0x3867 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x21A5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2153 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 0x2158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x219D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2194 SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x21FA JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2260 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2256 JUMPI PUSH2 0x2255 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x229D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2293 JUMPI PUSH2 0x2292 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22CC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x22F5 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x22EB JUMPI PUSH2 0x22EA PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x231A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2310 JUMPI PUSH2 0x230F PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x233D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x2333 JUMPI PUSH2 0x2332 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x234C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2364 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2390 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x23D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CC SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x23FE SWAP2 SWAP1 PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243B 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 0x2440 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2451 DUP8 DUP4 DUP4 DUP8 PUSH2 0x245D JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x24BF JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x24B7 JUMPI PUSH2 0x2477 DUP6 PUSH2 0x236D JUMP JUMPDEST PUSH2 0x24B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24AD SWAP1 PUSH2 0x39C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x24C9 DUP4 DUP4 PUSH2 0x24D2 JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x24E5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2519 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x256B DUP2 PUSH2 0x2536 JUMP JUMPDEST DUP2 EQ PUSH2 0x2576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2588 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25A4 JUMPI PUSH2 0x25A3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP5 DUP3 DUP6 ADD PUSH2 0x2579 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25D0 DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2604 DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP2 EQ PUSH2 0x260F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2621 DUP2 PUSH2 0x25FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x263D JUMPI PUSH2 0x263C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x264B DUP5 DUP3 DUP6 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2699 PUSH2 0x2694 PUSH2 0x268F DUP5 PUSH2 0x2654 JUMP JUMPDEST PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AB DUP3 PUSH2 0x267E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BD DUP3 PUSH2 0x26A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x26CD DUP2 PUSH2 0x26B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26DC DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2707 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2722 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x26C4 JUMP JUMPDEST PUSH2 0x272F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x273C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26FE JUMP JUMPDEST PUSH2 0x2749 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x26FE JUMP JUMPDEST SWAP6 SWAP5 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x278C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2771 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 0x27B4 DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x27BE DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST SWAP4 POP PUSH2 0x27CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x27D7 DUP2 PUSH2 0x2798 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 0x27FC DUP2 DUP5 PUSH2 0x27A9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F DUP3 PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x281F DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x283A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2816 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2849 DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP2 EQ PUSH2 0x2854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2866 DUP2 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2882 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2891 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A2 DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28E4 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x28F5 DUP7 DUP3 DUP8 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2914 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x2921 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x293E JUMPI PUSH2 0x293D PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294C DUP5 DUP3 DUP6 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x296A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x2984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2996 DUP2 PUSH2 0x2970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29A7 DUP3 PUSH2 0x2804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29B7 DUP2 PUSH2 0x299C JUMP JUMPDEST DUP2 EQ PUSH2 0x29C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x29D4 DUP2 PUSH2 0x29AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29F4 JUMPI PUSH2 0x29F3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A02 DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A13 DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2A24 DUP8 DUP3 DUP9 ADD PUSH2 0x2987 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2A35 DUP8 DUP3 DUP9 ADD PUSH2 0x29C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2A4A DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A67 DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A84 JUMPI PUSH2 0x2A83 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A92 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2A58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2AEF DUP3 PUSH2 0x2798 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2B0E JUMPI PUSH2 0x2B0D PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B21 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B2D DUP3 DUP3 PUSH2 0x2AE6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST PUSH2 0x2B56 DUP3 PUSH2 0x2798 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 0x2B85 PUSH2 0x2B80 DUP5 PUSH2 0x2B32 JUMP JUMPDEST PUSH2 0x2B17 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2BA1 JUMPI PUSH2 0x2BA0 PUSH2 0x2AB2 JUMP JUMPDEST JUMPDEST PUSH2 0x2BAC DUP5 DUP3 DUP6 PUSH2 0x2B63 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BC9 JUMPI PUSH2 0x2BC8 PUSH2 0x2AAD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BD9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2B72 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BFC JUMPI PUSH2 0x2BFB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C0A DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C1B DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2C2C DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C4D JUMPI PUSH2 0x2C4C PUSH2 0x2531 JUMP JUMPDEST JUMPDEST PUSH2 0x2C59 DUP8 DUP3 DUP9 ADD PUSH2 0x2BB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7C JUMPI PUSH2 0x2C7B PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C8A DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2C9B DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2CBC JUMPI PUSH2 0x2CBB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CCA DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2CDB DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2D2C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D3F JUMPI PUSH2 0x2D3E PUSH2 0x2CE5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA1 PUSH1 0x21 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2DAC DUP3 PUSH2 0x2D45 JUMP JUMPDEST PUSH1 0x40 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 0x2DD0 DUP2 PUSH2 0x2D94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E33 PUSH1 0x3D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E3E DUP3 PUSH2 0x2DD7 JUMP JUMPDEST PUSH1 0x40 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 0x2E62 DUP2 PUSH2 0x2E26 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EC5 PUSH1 0x2D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2ED0 DUP3 PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x40 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 0x2EF4 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F31 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2F3C DUP3 PUSH2 0x2EFB 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 0x2F60 DUP2 PUSH2 0x2F24 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x10 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 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 0x2FCC DUP2 PUSH2 0x2F90 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3009 PUSH1 0x1A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3014 DUP3 PUSH2 0x2FD3 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 0x3038 DUP2 PUSH2 0x2FFC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3079 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3084 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x309C JUMPI PUSH2 0x309B PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30D8 PUSH1 0x18 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x30E3 DUP3 PUSH2 0x30A2 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 0x3107 DUP2 PUSH2 0x30CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316A PUSH1 0x29 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3175 DUP3 PUSH2 0x310E JUMP JUMPDEST PUSH1 0x40 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 0x3199 DUP2 PUSH2 0x315D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31D6 PUSH1 0x16 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x31E1 DUP3 PUSH2 0x31A0 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 0x3205 DUP2 PUSH2 0x31C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x72656C65617365206D75737420626520696E2066757475726500000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3242 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x324D DUP3 PUSH2 0x320C 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 0x3271 DUP2 PUSH2 0x3235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3283 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x32B5 JUMPI PUSH2 0x32B4 PUSH2 0x303F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x32D6 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x32EE JUMPI PUSH2 0x32ED PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x330A DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x3314 DUP2 DUP6 PUSH2 0x32F4 JUMP JUMPDEST SWAP4 POP PUSH2 0x3324 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x333C DUP3 DUP6 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP PUSH2 0x3348 DUP3 DUP5 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33B0 PUSH1 0x25 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x33BB DUP3 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x40 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 0x33DF DUP2 PUSH2 0x33A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3442 PUSH1 0x24 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x344D DUP3 PUSH2 0x33E6 JUMP JUMPDEST PUSH1 0x40 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 0x3471 DUP2 PUSH2 0x3435 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x348D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x349A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D7 PUSH1 0x20 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x34E2 DUP3 PUSH2 0x34A1 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 0x3506 DUP2 PUSH2 0x34CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3543 PUSH1 0x1C DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x354E DUP3 PUSH2 0x350D 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 0x3572 DUP2 PUSH2 0x3536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x358E PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x359B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x35A8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E6 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x35F1 DUP3 PUSH2 0x35B0 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 0x3615 DUP2 PUSH2 0x35D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3678 PUSH1 0x32 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3683 DUP3 PUSH2 0x361C JUMP JUMPDEST PUSH1 0x40 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 0x36A7 DUP2 PUSH2 0x366B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x36EC DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3708 JUMPI PUSH2 0x3707 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3716 DUP5 DUP3 DUP6 ADD PUSH2 0x36DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x2A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3786 DUP3 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 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 0x37AA DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x37D8 DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x37E2 DUP2 DUP6 PUSH2 0x37BC JUMP JUMPDEST SWAP4 POP PUSH2 0x37F2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x37FB DUP2 PUSH2 0x2798 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x381B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3828 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3835 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3847 DUP2 DUP5 PUSH2 0x37CD JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3861 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x388B DUP5 DUP3 DUP6 ADD PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38F0 PUSH1 0x26 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x38FB DUP3 PUSH2 0x3894 JUMP JUMPDEST PUSH1 0x40 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 0x391F DUP2 PUSH2 0x38E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393C DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x3946 DUP2 DUP6 PUSH2 0x3926 JUMP JUMPDEST SWAP4 POP PUSH2 0x3956 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396E DUP3 DUP5 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x1D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x39BA DUP3 PUSH2 0x3979 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 0x39DE DUP2 PUSH2 0x39A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xBC SWAP5 PUSH27 0x635537FDA1DB652C421F31AD5F762A8C920AB72E4F2409561F0ECA 0x2C PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:2868:21:-:0;;;694:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;755:4;761:6;1464:5:6;1456;:13;;;;;;:::i;:::-;;1489:7;1479;:17;;;;;;:::i;:::-;;1390:113;;694:77:21;;88:2868;;7:75:22;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:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;88:2868:21:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_2030": { + "entryPoint": 8110, + "id": 2030, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_approve_1896": { + "entryPoint": 5028, + "id": 1896, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_baseURI_1333": { + "entryPoint": 7769, + "id": 1333, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_beforeTokenTransfer_2017": { + "entryPoint": 8104, + "id": 2017, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_callOptionalReturn_1118": { + "entryPoint": 8116, + "id": 1118, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkOnERC721Received_2004": { + "entryPoint": 8315, + "id": 2004, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_endTime_4607": { + "entryPoint": 6400, + "id": 4607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_exists_1565": { + "entryPoint": 6123, + "id": 1565, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isApprovedOrOwner_1599": { + "entryPoint": 5213, + "id": 1599, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1720": { + "entryPoint": 6539, + "id": 1720, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_2549": { + "entryPoint": 5020, + "id": 2549, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1547": { + "entryPoint": 6478, + "id": 1547, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payoutToken_4562": { + "entryPoint": 7249, + "id": 4562, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_payout_4577": { + "entryPoint": 7217, + "id": 4577, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireMinted_1942": { + "entryPoint": 4945, + "id": 1942, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_revert_2536": { + "entryPoint": 9426, + "id": 2536, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeTransfer_1534": { + "entryPoint": 7677, + "id": 1534, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_setApprovalForAll_1928": { + "entryPoint": 7313, + "id": 1928, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_startTime_4592": { + "entryPoint": 6322, + "id": 4592, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_transfer_1872": { + "entryPoint": 5362, + "id": 1872, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_1376": { + "entryPoint": 1744, + "id": 1376, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_1237": { + "entryPoint": 2837, + "id": 1237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claim_3803": { + "entryPoint": 2119, + "id": 3803, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@claimablePayout_3876": { + "entryPoint": 4088, + "id": 3876, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@claimedPayout_3894": { + "entryPoint": 3747, + "id": 3894, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@create_4515": { + "entryPoint": 3020, + "id": 4515, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@functionCallWithValue_2361": { + "entryPoint": 9104, + "id": 2361, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@functionCall_2297": { + "entryPoint": 9045, + "id": 2297, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getApproved_1394": { + "entryPoint": 1674, + "id": 1394, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_1429": { + "entryPoint": 4571, + "id": 1429, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isContract_2225": { + "entryPoint": 9069, + "id": 2225, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@log10_3546": { + "entryPoint": 8706, + "id": 3546, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_1275": { + "entryPoint": 1528, + "id": 1275, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_1265": { + "entryPoint": 2703, + "id": 1265, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@payoutToken_3936": { + "entryPoint": 3850, + "id": 3936, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1475": { + "entryPoint": 2567, + "id": 1475, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1505": { + "entryPoint": 4232, + "id": 1505, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransferFrom_896": { + "entryPoint": 7080, + "id": 896, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@safeTransfer_870": { + "entryPoint": 6188, + "id": 870, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@setApprovalForAll_1411": { + "entryPoint": 4210, + "id": 1411, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1213": { + "entryPoint": 4719, + "id": 1213, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2831": { + "entryPoint": 7998, + "id": 2831, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3960": { + "entryPoint": 1270, + "id": 3960, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_1285": { + "entryPoint": 3942, + "id": 1285, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_2691": { + "entryPoint": 7792, + "id": 2691, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1324": { + "entryPoint": 4330, + "id": 1324, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1456": { + "entryPoint": 2023, + "id": 1456, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_2492": { + "entryPoint": 9309, + "id": 2492, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@vestDetails_4425": { + "entryPoint": 1392, + "id": 4425, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@vestedPayoutAtTime_4544": { + "entryPoint": 4434, + "id": 4544, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@vestedPayout_3820": { + "entryPoint": 4552, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPayout_3854": { + "entryPoint": 3636, + "id": 3854, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@vestingPeriod_3918": { + "entryPoint": 2599, + "id": 3918, + "parameterSlots": 1, + "returnSlots": 2 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 11122, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 10327, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 10840, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 14045, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 9593, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 14418, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 11188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IERC20_$777": { + "entryPoint": 10693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint128": { + "entryPoint": 10631, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 9746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 10536, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11429, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 10412, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 11234, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 10861, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 10348, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777": { + "entryPoint": 10714, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 14066, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 9614, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 14439, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 11365, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 10262, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 9671, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 14285, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 14641, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack": { + "entryPoint": 9924, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10153, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13055, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12853, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13931, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13219, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13622, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12068, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13785, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14563, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12284, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12745, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12491, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11668, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12176, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11814, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14754, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 14190, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint128_to_t_uint128_fromStack": { + "entryPoint": 9982, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9939, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 14690, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 13104, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 10277, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 13689, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 14342, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 13432, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 9686, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed": { + "entryPoint": 9997, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10210, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11995, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12888, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13966, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13254, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13657, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12103, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13400, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13820, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14598, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12319, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12780, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13549, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11703, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12211, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11849, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14789, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 14225, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 10581, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 10495, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 11031, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 9506, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 11058, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 14257, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 10066, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 14268, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 14630, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 10077, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 13044, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12398, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 12992, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 10244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 9659, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 9526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IERC20_$777": { + "entryPoint": 10652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint128": { + "entryPoint": 9954, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 9812, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 9713, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IERC20_$777_to_t_address": { + "entryPoint": 9906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 9888, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 9854, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 11107, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 10094, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 11540, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 10982, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 9844, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 12920, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 12351, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13998, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11493, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 10935, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 10925, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 10930, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 9521, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 9516, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 10136, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af": { + "entryPoint": 11881, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860": { + "entryPoint": 12812, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e": { + "entryPoint": 13852, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48": { + "entryPoint": 13140, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57": { + "entryPoint": 13581, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a": { + "entryPoint": 12027, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4": { + "entryPoint": 13286, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05": { + "entryPoint": 13744, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c": { + "entryPoint": 14484, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159": { + "entryPoint": 12558, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03": { + "entryPoint": 12243, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c": { + "entryPoint": 12704, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6": { + "entryPoint": 13473, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f": { + "entryPoint": 12450, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942": { + "entryPoint": 11589, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721": { + "entryPoint": 12135, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83": { + "entryPoint": 11735, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad": { + "entryPoint": 14713, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd": { + "entryPoint": 14111, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 10304, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 10817, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 9570, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IERC20_$777": { + "entryPoint": 10670, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint128": { + "entryPoint": 10608, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 9723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:39788:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:22", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:22" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:22", + "type": "" + } + ], + "src": "7:75:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:22" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:22" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:22", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:22", + "type": "" + } + ], + "src": "334:149:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:22" + }, + "nodeType": "YulIf", + "src": "541:62:22" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:22", + "type": "" + } + ], + "src": "489:120:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:22", + "type": "" + } + ], + "src": "615:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:22" + }, + "nodeType": "YulIf", + "src": "833:119:22" + }, + { + "nodeType": "YulBlock", + "src": "962:116:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:22", + "type": "" + } + ], + "src": "758:327:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:22", + "type": "" + } + ], + "src": "1091:90:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:22" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:22", + "type": "" + } + ], + "src": "1187:109:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:22" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:22" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:22", + "type": "" + } + ], + "src": "1302:210:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:32:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:16:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1584:5:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:22", + "type": "" + } + ], + "src": "1518:77:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1701:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1710:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1713:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1703:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1703:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1703:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1667:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1692:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1674:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "1674:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1664:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "1664:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1657:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "1657:43:22" + }, + "nodeType": "YulIf", + "src": "1654:63:22" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1637:5:22", + "type": "" + } + ], + "src": "1601:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1781:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1791:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1813:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1800:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "1800:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1791:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1856:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1829:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "1829:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1829:33:22" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1759:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1767:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1775:5:22", + "type": "" + } + ], + "src": "1729:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1940:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1986:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1988:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "1988:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "1988:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1961:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1970:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1957:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1982:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "1953:32:22" + }, + "nodeType": "YulIf", + "src": "1950:119:22" + }, + { + "nodeType": "YulBlock", + "src": "2079:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2094:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2108:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2098:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2123:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2158:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2169:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2154:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2154:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2178:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2133:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "2133:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2123:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1910:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1921:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1933:6:22", + "type": "" + } + ], + "src": "1874:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2254:81:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2264:65:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2279:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2286:42:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "2275:54:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2264:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2236:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2246:7:22", + "type": "" + } + ], + "src": "2209:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2373:28:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2383:12:22", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2390:5:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2383:3:22" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2359:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2369:3:22", + "type": "" + } + ], + "src": "2341:60:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2467:82:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2477:66:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2535:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2517:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2517:24:22" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "2508:8:22" + }, + "nodeType": "YulFunctionCall", + "src": "2508:34:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2490:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "2490:53:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2477:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2447:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2457:9:22", + "type": "" + } + ], + "src": "2407:142:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2615:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2625:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2669:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "2638:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2638:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2625:9:22" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2595:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2605:9:22", + "type": "" + } + ], + "src": "2555:126:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2761:66:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2771:50:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2815:5:22" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "2784:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "2784:37:22" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2771:9:22" + } + ] + } + ] + }, + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2741:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2751:9:22", + "type": "" + } + ], + "src": "2687:140:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2912:80:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2929:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2979:5:22" + } + ], + "functionName": { + "name": "convert_t_contract$_IERC20_$777_to_t_address", + "nodeType": "YulIdentifier", + "src": "2934:44:22" + }, + "nodeType": "YulFunctionCall", + "src": "2934:51:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2922:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "2922:64:22" + }, + "nodeType": "YulExpressionStatement", + "src": "2922:64:22" + } + ] + }, + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2900:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2907:3:22", + "type": "" + } + ], + "src": "2833:159:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3063:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3080:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3103:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3085:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3085:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3073:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3073:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3073:37:22" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3051:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3058:3:22", + "type": "" + } + ], + "src": "2998:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:73:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3177:57:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3192:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3199:34:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3188:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3188:46:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3177:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3149:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3159:7:22", + "type": "" + } + ], + "src": "3122:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3311:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3328:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3351:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "3333:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "3333:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3321:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "3321:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3321:37:22" + } + ] + }, + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3299:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3306:3:22", + "type": "" + } + ], + "src": "3246:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3566:385:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3576:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3588:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3599:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3584:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3584:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3576:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3671:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3684:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3695:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3680:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3680:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3613:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "3613:85:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3613:85:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3752:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3765:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3776:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3761:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3761:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3708:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3708:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3708:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3834:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3847:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3858:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3843:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3843:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3790:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3790:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3790:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3916:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3929:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3925:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "3925:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint128_to_t_uint128_fromStack", + "nodeType": "YulIdentifier", + "src": "3872:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "3872:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "3872:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3514:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3526:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3534:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3542:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3550:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3561:4:22", + "type": "" + } + ], + "src": "3370:581:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4016:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4027:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4043:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4037:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4037:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4027:6:22" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3999:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4009:6:22", + "type": "" + } + ], + "src": "3957:99:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4158:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4175:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4180:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4168:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4168:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4168:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "4196:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4215:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4220:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4211:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4211:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4196:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4130:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4135:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4146:11:22", + "type": "" + } + ], + "src": "4062:169:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4299:184:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4309:10:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4318:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4313:1:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4378:63:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4403:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4408:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4399:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4399:11:22" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4422:3:22" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4427:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4418:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4418:11:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4412:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "4412:18:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4392:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4392:39:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4392:39:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4339:1:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4342:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4336:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "4336:13:22" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4350:19:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4352:15:22", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4361:1:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4364:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4357:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4357:10:22" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4352:1:22" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4332:3:22", + "statements": [] + }, + "src": "4328:113:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4461:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4466:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4457:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4457:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4475:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4450:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "4450:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4450:27:22" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4281:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4286:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4291:6:22", + "type": "" + } + ], + "src": "4237:246:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4537:54:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4547:38:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4565:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4572:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4561:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4561:14:22" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4581:2:22", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4577:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4577:7:22" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4557:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4557:28:22" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4547:6:22" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4520:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4530:6:22", + "type": "" + } + ], + "src": "4489:102:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4689:285:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4699:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4746:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4713:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "4713:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4703:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4761:78:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4827:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4832:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4768:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "4768:71:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4761:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4887:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4894:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4883:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4883:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4901:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4906:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4848:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "4848:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "4848:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "4922:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4933:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4960:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "4938:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "4938:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4929:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "4929:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4922:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4670:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4677:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4685:3:22", + "type": "" + } + ], + "src": "4597:377:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5098:195:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5108:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5120:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5131:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5116:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5116:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5108:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5155:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5166:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5151:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5151:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5174:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5180:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5170:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5170:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5144:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5144:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5144:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "5200:86:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5272:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5281:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5208:63:22" + }, + "nodeType": "YulFunctionCall", + "src": "5208:78:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5200:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5070:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5082:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5093:4:22", + "type": "" + } + ], + "src": "4980:313:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5344:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5354:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5383:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5365:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5365:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5354:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5326:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5336:7:22", + "type": "" + } + ], + "src": "5299:96:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5466:53:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5483:3:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5506:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5488:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5488:24:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5476:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5476:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5476:37:22" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5454:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5461:3:22", + "type": "" + } + ], + "src": "5401:118:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5623:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5633:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5645:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5656:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5641:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5641:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5633:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5713:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5726:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5737:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5722:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "5722:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5669:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "5669:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5669:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5595:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5607:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5618:4:22", + "type": "" + } + ], + "src": "5525:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5796:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5853:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5862:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5865:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5855:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5855:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5855:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5819:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5844:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5826:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "5826:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5816:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "5816:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5809:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "5809:43:22" + }, + "nodeType": "YulIf", + "src": "5806:63:22" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5789:5:22", + "type": "" + } + ], + "src": "5753:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5933:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5943:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5965:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5952:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "5952:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5943:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6008:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "5981:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "5981:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "5981:33:22" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5911:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5919:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5927:5:22", + "type": "" + } + ], + "src": "5881:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6109:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6155:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6157:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6157:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6157:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6130:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6139:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6126:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6151:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6122:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6122:32:22" + }, + "nodeType": "YulIf", + "src": "6119:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6248:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6263:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6277:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6267:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6292:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6327:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6338:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6323:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6323:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6347:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6302:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6302:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6292:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6375:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6390:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6404:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6394:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6420:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6455:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6466:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6451:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6451:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6475:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6430:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6430:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6420:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6071:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6082:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6094:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6102:6:22", + "type": "" + } + ], + "src": "6026:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6606:519:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6652:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6654:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "6654:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "6654:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6627:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6636:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6623:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6623:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6648:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6619:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6619:32:22" + }, + "nodeType": "YulIf", + "src": "6616:119:22" + }, + { + "nodeType": "YulBlock", + "src": "6745:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6760:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6774:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6764:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6789:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6824:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6835:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6820:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6844:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6799:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6799:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6789:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6872:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6887:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6901:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6891:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6917:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6952:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6963:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6948:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "6948:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6972:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6927:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "6927:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6917:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7000:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7015:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7029:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7019:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7045:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7080:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7091:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7076:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7100:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7055:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7055:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7045:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6560:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6571:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6583:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6591:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6599:6:22", + "type": "" + } + ], + "src": "6506:619:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7257:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7267:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7279:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7290:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7275:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7275:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7267:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7347:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7360:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7371:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7356:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7356:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7303:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7303:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7303:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7428:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7441:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7452:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7437:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7437:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7384:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7384:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7384:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7221:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7233:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7241:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7252:4:22", + "type": "" + } + ], + "src": "7131:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7535:263:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7581:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7583:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "7583:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7583:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7556:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7565:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7552:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7552:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7577:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7548:32:22" + }, + "nodeType": "YulIf", + "src": "7545:119:22" + }, + { + "nodeType": "YulBlock", + "src": "7674:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7689:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7703:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7693:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7718:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7753:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7764:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7749:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7749:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7773:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7728:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "7728:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7718:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7505:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7516:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7528:6:22", + "type": "" + } + ], + "src": "7469:329:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7902:124:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7912:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7924:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7935:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7920:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "7920:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7912:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7992:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8005:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8016:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8001:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8001:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7948:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "7948:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "7948:71:22" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7874:9:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7886:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7897:4:22", + "type": "" + } + ], + "src": "7804:222:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8075:79:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8132:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8141:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8144:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8134:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8134:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8134:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8098:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8123:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint128", + "nodeType": "YulIdentifier", + "src": "8105:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8105:24:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8095:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8095:35:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8088:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8088:43:22" + }, + "nodeType": "YulIf", + "src": "8085:63:22" + } + ] + }, + "name": "validator_revert_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8068:5:22", + "type": "" + } + ], + "src": "8032:122:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8212:87:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8222:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8244:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8231:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8231:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8222:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8287:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_uint128", + "nodeType": "YulIdentifier", + "src": "8260:26:22" + }, + "nodeType": "YulFunctionCall", + "src": "8260:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8260:33:22" + } + ] + }, + "name": "abi_decode_t_uint128", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8190:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8198:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8206:5:22", + "type": "" + } + ], + "src": "8160:139:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8364:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8374:35:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8403:5:22" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "8385:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "8385:24:22" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "8374:7:22" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8346:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "8356:7:22", + "type": "" + } + ], + "src": "8305:110:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8478:93:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8549:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8558:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8561:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8551:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8551:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8551:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8501:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8540:5:22" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "8508:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "8508:38:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8498:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "8498:49:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8491:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "8491:57:22" + }, + "nodeType": "YulIf", + "src": "8488:77:22" + } + ] + }, + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8471:5:22", + "type": "" + } + ], + "src": "8421:150:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8643:101:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8653:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8675:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8662:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "8662:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8653:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8732:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "8691:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "8691:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8691:47:22" + } + ] + }, + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8621:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8629:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8637:5:22", + "type": "" + } + ], + "src": "8577:167:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8881:662:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8928:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8930:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "8930:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "8930:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8902:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8911:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8898:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8898:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8923:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8894:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "8894:33:22" + }, + "nodeType": "YulIf", + "src": "8891:120:22" + }, + { + "nodeType": "YulBlock", + "src": "9021:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9036:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9050:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9040:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9065:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9100:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9111:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9096:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9096:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9120:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9075:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9075:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9065:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9148:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9163:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9177:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9167:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9193:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9228:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9239:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9224:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9224:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9248:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9203:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9203:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9193:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9276:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9291:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9305:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9295:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9321:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9356:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9367:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9352:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9352:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9376:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint128", + "nodeType": "YulIdentifier", + "src": "9331:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "9331:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9321:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9404:132:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9419:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9433:2:22", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9423:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9449:77:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9498:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9509:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9494:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9494:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9518:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$777", + "nodeType": "YulIdentifier", + "src": "9459:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "9459:67:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9449:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8827:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8838:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8850:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8858:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8866:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "8874:6:22", + "type": "" + } + ], + "src": "8750:793:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9589:76:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9643:16:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9652:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9655:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9645:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9645:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9645:12:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9612:5:22" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9634:5:22" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9619:14:22" + }, + "nodeType": "YulFunctionCall", + "src": "9619:21:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9609:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "9609:32:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9602:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "9602:40:22" + }, + "nodeType": "YulIf", + "src": "9599:60:22" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9582:5:22", + "type": "" + } + ], + "src": "9549:116:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9720:84:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9730:29:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9752:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9739:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "9739:20:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9730:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9792:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9768:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "9768:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9768:30:22" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9698:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9706:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9714:5:22", + "type": "" + } + ], + "src": "9671:133:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9890:388:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9936:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9938:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "9938:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "9938:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9911:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9920:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9907:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9907:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9932:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9903:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "9903:32:22" + }, + "nodeType": "YulIf", + "src": "9900:119:22" + }, + { + "nodeType": "YulBlock", + "src": "10029:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10044:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10058:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10048:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10073:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10108:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10119:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10104:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10104:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10128:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10083:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "10083:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10073:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10156:115:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10171:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10185:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10175:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10201:60:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10233:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10244:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10229:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10229:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10253:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "10211:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "10211:50:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10201:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9852:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9863:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9875:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9883:6:22", + "type": "" + } + ], + "src": "9810:468:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10373:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10390:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10393:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10383:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10383:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10383:12:22" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "10284:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10496:28:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10513:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10516:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10506:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10506:12:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10506:12:22" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "10407:117:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10558:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10575:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10578:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10568:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10568:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10568:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10672:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10675:4:22", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10665:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10665:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10665:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10696:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10699:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10689:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10689:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10689:15:22" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "10530:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10759:238:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10769:58:22", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10791:6:22" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "10821:4:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "10799:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "10799:27:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "10787:40:22" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "10773:10:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10938:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "10940:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "10940:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10940:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10881:10:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10893:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10878:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10878:34:22" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10917:10:22" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10929:6:22" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10914:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10914:22:22" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "10875:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "10875:62:22" + }, + "nodeType": "YulIf", + "src": "10872:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10976:2:22", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "10980:10:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10969:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "10969:22:22" + }, + "nodeType": "YulExpressionStatement", + "src": "10969:22:22" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10745:6:22", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "10753:4:22", + "type": "" + } + ], + "src": "10716:281:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11044:88:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11054:30:22", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "11064:18:22" + }, + "nodeType": "YulFunctionCall", + "src": "11064:20:22" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11054:6:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11113:6:22" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11121:4:22" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "11093:19:22" + }, + "nodeType": "YulFunctionCall", + "src": "11093:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11093:33:22" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "11028:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11037:6:22", + "type": "" + } + ], + "src": "11003:129:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11204:241:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11309:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "11311:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "11311:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11311:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11281:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11289:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11278:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11278:30:22" + }, + "nodeType": "YulIf", + "src": "11275:56:22" + }, + { + "nodeType": "YulAssignment", + "src": "11341:37:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11371:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "11349:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "11349:29:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11341:4:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11415:23:22", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11427:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11433:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11423:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11423:15:22" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "11415:4:22" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11188:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "11199:4:22", + "type": "" + } + ], + "src": "11138:307:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11515:82:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "11538:3:22" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11543:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11548:6:22" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "11525:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "11525:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11525:30:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "11575:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11580:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11571:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11571:16:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11589:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11564:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11564:27:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11564:27:22" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11497:3:22", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "11502:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11507:6:22", + "type": "" + } + ], + "src": "11451:146:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11686:340:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11696:74:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11762:6:22" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11721:40:22" + }, + "nodeType": "YulFunctionCall", + "src": "11721:48:22" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "11705:15:22" + }, + "nodeType": "YulFunctionCall", + "src": "11705:65:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11696:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11786:5:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11793:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11779:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "11779:21:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11779:21:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11809:27:22", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "11824:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11831:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11820:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11820:16:22" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "11813:3:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11874:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "11876:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "11876:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11876:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11855:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11860:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11851:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "11851:16:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11869:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11848:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "11848:25:22" + }, + "nodeType": "YulIf", + "src": "11845:112:22" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12003:3:22" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "12008:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12013:6:22" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "11966:36:22" + }, + "nodeType": "YulFunctionCall", + "src": "11966:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "11966:54:22" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11659:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11664:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11672:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "11680:5:22", + "type": "" + } + ], + "src": "11603:423:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12106:277:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12155:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "12157:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12157:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12157:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12134:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12142:4:22", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12130:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12130:17:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12149:3:22" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12126:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12126:27:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "12119:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "12119:35:22" + }, + "nodeType": "YulIf", + "src": "12116:122:22" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12247:34:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12274:6:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12261:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "12261:20:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12251:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12290:87:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12350:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12358:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12346:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12346:17:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12365:6:22" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12373:3:22" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12299:46:22" + }, + "nodeType": "YulFunctionCall", + "src": "12299:78:22" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "12290:5:22" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12084:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12092:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "12100:5:22", + "type": "" + } + ], + "src": "12045:338:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12515:817:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12562:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12564:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "12564:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "12564:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12536:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12545:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12532:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12532:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12557:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12528:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12528:33:22" + }, + "nodeType": "YulIf", + "src": "12525:120:22" + }, + { + "nodeType": "YulBlock", + "src": "12655:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12670:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12684:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12674:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12699:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12734:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12745:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12730:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12730:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12754:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12709:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12709:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12699:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12782:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12797:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12811:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12801:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12827:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12862:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12873:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12858:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12858:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12882:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12837:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12837:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12827:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12910:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12925:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12939:2:22", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12929:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12955:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12990:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13001:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12986:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "12986:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13010:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "12965:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "12965:53:22" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12955:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13038:287:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13053:46:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13084:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13095:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13080:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13080:18:22" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "13067:12:22" + }, + "nodeType": "YulFunctionCall", + "src": "13067:32:22" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13057:6:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13146:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "13148:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13148:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13148:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13118:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13126:18:22", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13115:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "13115:30:22" + }, + "nodeType": "YulIf", + "src": "13112:117:22" + }, + { + "nodeType": "YulAssignment", + "src": "13243:72:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13287:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13298:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13283:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13283:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13307:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13253:29:22" + }, + "nodeType": "YulFunctionCall", + "src": "13253:62:22" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13243:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12461:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12472:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12484:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12492:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12500:6:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12508:6:22", + "type": "" + } + ], + "src": "12389:943:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13421:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13467:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13469:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13469:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13469:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13442:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13451:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13438:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13438:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13463:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13434:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13434:32:22" + }, + "nodeType": "YulIf", + "src": "13431:119:22" + }, + { + "nodeType": "YulBlock", + "src": "13560:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13575:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13589:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13579:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13604:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13639:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13650:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13635:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13635:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13659:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13614:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13614:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13604:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13687:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13702:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13716:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13706:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13732:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13767:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13778:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13763:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13763:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13787:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13742:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "13742:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13732:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13383:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13394:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13406:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13414:6:22", + "type": "" + } + ], + "src": "13338:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13901:391:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13947:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13949:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "13949:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "13949:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13922:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13931:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13918:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13943:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13914:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "13914:32:22" + }, + "nodeType": "YulIf", + "src": "13911:119:22" + }, + { + "nodeType": "YulBlock", + "src": "14040:117:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14055:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14069:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14059:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14084:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14119:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14130:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14115:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14115:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14139:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14094:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14094:53:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14084:6:22" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14167:118:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14182:16:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14196:2:22", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14186:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14212:63:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14247:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14258:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14243:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14243:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14267:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "14222:20:22" + }, + "nodeType": "YulFunctionCall", + "src": "14222:53:22" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14212:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13863:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13874:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13886:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13894:6:22", + "type": "" + } + ], + "src": "13818:474:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14326:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14343:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14346:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14336:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14336:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14336:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14440:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14443:4:22", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14433:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14433:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14433:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14464:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14467:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14457:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14457:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14457:15:22" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "14298:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14535:269:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14545:22:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14559:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14565:1:22", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "14555:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14555:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14545:6:22" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14576:38:22", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "14606:4:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14612:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14602:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14602:12:22" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "14580:18:22", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14653:51:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14667:27:22", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14681:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14689:4:22", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14677:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14677:17:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14667:6:22" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14633:18:22" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14626:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14626:26:22" + }, + "nodeType": "YulIf", + "src": "14623:81:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14756:42:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "14770:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "14770:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14770:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "14720:18:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14743:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14751:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14740:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "14740:14:22" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "14717:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "14717:38:22" + }, + "nodeType": "YulIf", + "src": "14714:84:22" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "14519:4:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14528:6:22", + "type": "" + } + ], + "src": "14484:320:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14916:114:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14938:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14946:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14934:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "14934:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14950:34:22", + "type": "", + "value": "ERC721: approval to current owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14927:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14927:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14927:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15006:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15014:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15002:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15002:15:22" + }, + { + "hexValue": "72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15019:3:22", + "type": "", + "value": "r" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14995:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "14995:28:22" + }, + "nodeType": "YulExpressionStatement", + "src": "14995:28:22" + } + ] + }, + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14908:6:22", + "type": "" + } + ], + "src": "14810:220:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15182:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15192:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15258:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15263:2:22", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15199:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "15199:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15192:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15364:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "nodeType": "YulIdentifier", + "src": "15275:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "15275:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15275:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "15377:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15388:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15393:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15384:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15384:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15377:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15170:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15178:3:22", + "type": "" + } + ], + "src": "15036:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15579:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15589:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15601:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15612:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15597:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15597:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15589:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15636:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15647:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15632:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15632:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15655:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15661:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15651:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15651:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15625:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15625:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15625:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "15681:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15815:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15689:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "15689:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15681:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15559:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15574:4:22", + "type": "" + } + ], + "src": "15408:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15939:142:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15961:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15969:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15957:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "15957:14:22" + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15973:34:22", + "type": "", + "value": "ERC721: approve caller is not to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15950:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "15950:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "15950:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16029:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16037:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16025:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16025:15:22" + }, + { + "hexValue": "6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16042:31:22", + "type": "", + "value": "ken owner or approved for all" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16018:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16018:56:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16018:56:22" + } + ] + }, + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15931:6:22", + "type": "" + } + ], + "src": "15833:248:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16233:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16243:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16309:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16314:2:22", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16250:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "16250:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16243:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16415:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", + "nodeType": "YulIdentifier", + "src": "16326:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "16326:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16326:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "16428:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16439:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16444:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16435:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16435:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16428:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16221:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16229:3:22", + "type": "" + } + ], + "src": "16087:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16630:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16640:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16652:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16663:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16648:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16648:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16640:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16687:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16698:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16683:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16683:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16706:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16712:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16702:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "16702:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16676:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "16676:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "16676:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "16732:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16866:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16740:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "16740:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16732:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16610:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16625:4:22", + "type": "" + } + ], + "src": "16459:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16990:126:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17012:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17020:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17008:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17008:14:22" + }, + { + "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17024:34:22", + "type": "", + "value": "ERC721: caller is not token owne" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17001:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17001:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17001:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17080:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17088:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17076:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17076:15:22" + }, + { + "hexValue": "72206f7220617070726f766564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17093:15:22", + "type": "", + "value": "r or approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17069:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17069:40:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17069:40:22" + } + ] + }, + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16982:6:22", + "type": "" + } + ], + "src": "16884:232:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17268:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17278:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17344:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17349:2:22", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17285:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "17285:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17278:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17450:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", + "nodeType": "YulIdentifier", + "src": "17361:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "17361:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17361:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "17463:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17474:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17479:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17470:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17470:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17463:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17256:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17264:3:22", + "type": "" + } + ], + "src": "17122:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17665:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17675:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17687:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17698:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17683:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17683:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17675:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17722:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17733:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17718:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17718:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17741:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17747:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17737:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "17737:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17711:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "17711:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "17711:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "17767:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17901:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17775:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "17775:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17767:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17645:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17660:4:22", + "type": "" + } + ], + "src": "17494:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18025:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18047:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18055:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18043:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18043:14:22" + }, + { + "hexValue": "455243353732353a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18059:27:22", + "type": "", + "value": "ERC5725: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18036:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18036:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18036:51:22" + } + ] + }, + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18017:6:22", + "type": "" + } + ], + "src": "17919:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18246:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18256:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18322:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18327:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18263:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "18263:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18256:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18428:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a", + "nodeType": "YulIdentifier", + "src": "18339:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "18339:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18339:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "18441:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18452:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18457:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18448:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18448:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18441:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18234:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18242:3:22", + "type": "" + } + ], + "src": "18100:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18643:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18653:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18665:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18676:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18661:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18661:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18653:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18700:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18711:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18696:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18696:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18719:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18725:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18715:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "18715:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18689:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "18689:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "18689:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "18745:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18879:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18753:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "18753:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18745:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18623:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18638:4:22", + "type": "" + } + ], + "src": "18472:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19003:60:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19025:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19033:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19021:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19021:14:22" + }, + { + "hexValue": "4e6f74206f776e6572206f66204e4654", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19037:18:22", + "type": "", + "value": "Not owner of NFT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19014:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19014:42:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19014:42:22" + } + ] + }, + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18995:6:22", + "type": "" + } + ], + "src": "18897:166:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19215:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19225:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19291:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19296:2:22", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19232:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "19232:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19225:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19397:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721", + "nodeType": "YulIdentifier", + "src": "19308:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "19308:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19308:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "19410:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19421:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19426:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19417:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19417:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19410:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19203:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19211:3:22", + "type": "" + } + ], + "src": "19069:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19612:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19622:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19634:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19645:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19630:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19630:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19622:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19669:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19680:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19665:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19665:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19688:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19694:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19684:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19684:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19658:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19658:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19658:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "19714:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19848:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19722:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "19722:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19714:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19592:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19607:4:22", + "type": "" + } + ], + "src": "19441:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19972:70:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19994:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20002:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19990:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "19990:14:22" + }, + { + "hexValue": "455243353732353a204e6f2070656e64696e67207061796f7574", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20006:28:22", + "type": "", + "value": "ERC5725: No pending payout" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19983:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "19983:52:22" + }, + "nodeType": "YulExpressionStatement", + "src": "19983:52:22" + } + ] + }, + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19964:6:22", + "type": "" + } + ], + "src": "19866:176:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20194:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20204:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20270:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20275:2:22", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20211:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "20211:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20204:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20376:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03", + "nodeType": "YulIdentifier", + "src": "20287:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "20287:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20287:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "20389:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20400:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20405:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20396:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20396:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20389:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20182:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20190:3:22", + "type": "" + } + ], + "src": "20048:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20591:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20601:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20613:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20624:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20609:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20609:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20601:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20648:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20659:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20644:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20644:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20667:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20673:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20663:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "20663:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20637:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20637:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20637:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "20693:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20827:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20701:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "20701:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20693:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20571:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20586:4:22", + "type": "" + } + ], + "src": "20420:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20873:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20890:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20893:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20883:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20883:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20883:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20987:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20990:4:22", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20980:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "20980:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "20980:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21011:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21014:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21004:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21004:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21004:15:22" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "20845:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21075:147:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21085:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21108:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21090:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21090:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21085:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21119:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21142:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21124:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "21124:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21119:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21153:16:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21164:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21167:1:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21160:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21160:9:22" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21153:3:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21193:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21195:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "21195:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21195:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21185:1:22" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "21188:3:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21182:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "21182:10:22" + }, + "nodeType": "YulIf", + "src": "21179:36:22" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21062:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21065:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "21071:3:22", + "type": "" + } + ], + "src": "21031:191:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21334:68:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21356:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21364:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21352:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21352:14:22" + }, + { + "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21368:26:22", + "type": "", + "value": "ERC721: invalid token ID" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21345:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21345:50:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21345:50:22" + } + ] + }, + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21326:6:22", + "type": "" + } + ], + "src": "21228:174:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21554:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21564:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21630:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21635:2:22", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21571:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "21571:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21564:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21736:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", + "nodeType": "YulIdentifier", + "src": "21647:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "21647:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21647:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "21749:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21760:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21765:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21756:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21756:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21749:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21542:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21550:3:22", + "type": "" + } + ], + "src": "21408:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21951:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21961:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21973:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21984:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21969:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "21969:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21961:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22008:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22019:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22004:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22004:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22027:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22033:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22023:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22023:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21997:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "21997:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "21997:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "22053:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22187:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22061:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "22061:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22053:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21931:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21946:4:22", + "type": "" + } + ], + "src": "21780:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22311:122:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22333:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22341:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22329:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22329:14:22" + }, + { + "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f742061207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22345:34:22", + "type": "", + "value": "ERC721: address zero is not a va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22322:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22322:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22322:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22401:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22409:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22397:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22397:15:22" + }, + { + "hexValue": "6c6964206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22414:11:22", + "type": "", + "value": "lid owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22390:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "22390:36:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22390:36:22" + } + ] + }, + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22303:6:22", + "type": "" + } + ], + "src": "22205:228:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22585:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22595:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22661:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22666:2:22", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22602:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "22602:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22595:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22767:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", + "nodeType": "YulIdentifier", + "src": "22678:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "22678:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "22678:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "22780:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22791:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22796:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22787:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "22787:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22780:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22573:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22581:3:22", + "type": "" + } + ], + "src": "22439:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22982:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22992:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23004:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23015:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23000:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23000:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "22992:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23039:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23050:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23035:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23035:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23058:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23064:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23054:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23054:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23028:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23028:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23028:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "23084:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23218:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23092:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "23092:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23084:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22962:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "22977:4:22", + "type": "" + } + ], + "src": "22811:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23342:66:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23364:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23372:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23360:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23360:14:22" + }, + { + "hexValue": "746f2063616e6e6f7420626520616464726573732030", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23376:24:22", + "type": "", + "value": "to cannot be address 0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23353:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "23353:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23353:48:22" + } + ] + }, + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23334:6:22", + "type": "" + } + ], + "src": "23236:172:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23560:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23570:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23636:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23641:2:22", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23577:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "23577:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23570:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23742:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c", + "nodeType": "YulIdentifier", + "src": "23653:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "23653:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "23653:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "23755:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23766:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23771:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23762:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23762:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23755:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23548:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23556:3:22", + "type": "" + } + ], + "src": "23414:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23957:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23967:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23979:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23990:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23975:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "23975:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23967:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24014:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24025:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24010:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24010:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24033:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24039:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24029:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24029:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24003:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24003:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24003:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "24059:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24193:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24067:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "24067:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24059:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23937:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23952:4:22", + "type": "" + } + ], + "src": "23786:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24317:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24339:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24347:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24335:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24335:14:22" + }, + { + "hexValue": "72656c65617365206d75737420626520696e20667574757265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24351:27:22", + "type": "", + "value": "release must be in future" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24328:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24328:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24328:51:22" + } + ] + }, + "name": "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24309:6:22", + "type": "" + } + ], + "src": "24211:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24538:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24548:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24614:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24619:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24555:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "24555:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24548:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24720:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860", + "nodeType": "YulIdentifier", + "src": "24631:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "24631:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24631:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "24733:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24744:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24749:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24740:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24733:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24526:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24534:3:22", + "type": "" + } + ], + "src": "24392:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24935:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24945:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24968:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24953:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24945:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24992:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25003:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24988:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "24988:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25011:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25017:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25007:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25007:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24981:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "24981:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "24981:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "25037:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25171:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25045:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "25045:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25037:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24915:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24930:4:22", + "type": "" + } + ], + "src": "24764:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25232:190:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25242:33:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25269:5:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25251:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25251:24:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25242:5:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25365:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25367:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "25367:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25367:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25290:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25297:66:22", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "25287:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "25287:77:22" + }, + "nodeType": "YulIf", + "src": "25284:103:22" + }, + { + "nodeType": "YulAssignment", + "src": "25396:20:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25407:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25414:1:22", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25403:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25403:13:22" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "25396:3:22" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25218:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "25228:3:22", + "type": "" + } + ], + "src": "25189:233:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25473:149:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25483:25:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25506:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25488:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25488:20:22" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25483:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25517:25:22", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25540:1:22" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "25522:17:22" + }, + "nodeType": "YulFunctionCall", + "src": "25522:20:22" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25517:1:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25551:17:22", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25563:1:22" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "25566:1:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25559:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "25559:9:22" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25551:4:22" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25593:22:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "25595:16:22" + }, + "nodeType": "YulFunctionCall", + "src": "25595:18:22" + }, + "nodeType": "YulExpressionStatement", + "src": "25595:18:22" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "25584:4:22" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "25590:1:22" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "25581:2:22" + }, + "nodeType": "YulFunctionCall", + "src": "25581:11:22" + }, + "nodeType": "YulIf", + "src": "25578:37:22" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "25459:1:22", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "25462:1:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "25468:4:22", + "type": "" + } + ], + "src": "25428:194:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25742:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25752:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25767:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "25752:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25714:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "25719:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "25730:11:22", + "type": "" + } + ], + "src": "25628:148:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25892:280:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25902:53:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "25949:5:22" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "25916:32:22" + }, + "nodeType": "YulFunctionCall", + "src": "25916:39:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "25906:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "25964:96:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26048:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26053:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "25971:76:22" + }, + "nodeType": "YulFunctionCall", + "src": "25971:89:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25964:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "26108:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26115:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26104:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26104:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26122:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26127:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "26069:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "26069:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26069:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "26143:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26154:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "26159:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26150:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26150:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26143:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "25873:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25880:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25888:3:22", + "type": "" + } + ], + "src": "25782:390:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26362:251:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26373:102:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "26462:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26471:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "26380:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "26380:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26373:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26485:102:22", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "26574:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26583:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "26492:81:22" + }, + "nodeType": "YulFunctionCall", + "src": "26492:95:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26485:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "26597:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26604:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26597:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26333:3:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "26339:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "26347:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26358:3:22", + "type": "" + } + ], + "src": "26178:435:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26725:118:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26747:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26755:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26743:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26743:14:22" + }, + { + "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f727265637420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26759:34:22", + "type": "", + "value": "ERC721: transfer from incorrect " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26736:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26736:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26736:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26815:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26823:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26811:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "26811:15:22" + }, + { + "hexValue": "6f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26828:7:22", + "type": "", + "value": "owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26804:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "26804:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "26804:32:22" + } + ] + }, + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26717:6:22", + "type": "" + } + ], + "src": "26619:224:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26995:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27005:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27071:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27076:2:22", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27012:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "27012:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27005:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27177:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", + "nodeType": "YulIdentifier", + "src": "27088:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "27088:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27088:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "27190:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27201:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27206:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27197:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27197:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27190:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26983:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26991:3:22", + "type": "" + } + ], + "src": "26849:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27392:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27402:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27414:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27425:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27410:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27410:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27402:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27449:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27460:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27445:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27445:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27468:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27474:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27464:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27464:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27438:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27438:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27438:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "27494:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27628:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27502:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "27502:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27494:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27372:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27387:4:22", + "type": "" + } + ], + "src": "27221:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27752:117:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27774:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27782:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27770:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27770:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f20616464", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27786:34:22", + "type": "", + "value": "ERC721: transfer to the zero add" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27763:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27763:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27763:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27842:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27850:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27838:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "27838:15:22" + }, + { + "hexValue": "72657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27855:6:22", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27831:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "27831:31:22" + }, + "nodeType": "YulExpressionStatement", + "src": "27831:31:22" + } + ] + }, + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27744:6:22", + "type": "" + } + ], + "src": "27646:223:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28021:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28031:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28097:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28102:2:22", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28038:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "28038:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28031:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28203:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "nodeType": "YulIdentifier", + "src": "28114:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "28114:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28114:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "28216:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28227:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28232:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28223:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28223:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28216:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28009:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28017:3:22", + "type": "" + } + ], + "src": "27875:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28418:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28428:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28440:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28451:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28436:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28436:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28428:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28475:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28486:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28471:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28471:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28494:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28500:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28490:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28490:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28464:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "28464:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28464:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "28520:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28654:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28528:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "28528:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28520:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28398:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28413:4:22", + "type": "" + } + ], + "src": "28247:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28798:206:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28808:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28820:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28831:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28816:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28816:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28808:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28888:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28901:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28912:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28897:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28897:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "28844:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "28844:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28844:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28969:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28982:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28993:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28978:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "28978:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "28925:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "28925:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "28925:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28762:9:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "28774:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "28782:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28793:4:22", + "type": "" + } + ], + "src": "28672:332:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29116:76:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29138:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29146:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29134:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29134:14:22" + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29150:34:22", + "type": "", + "value": "ERC721: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29127:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29127:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29127:58:22" + } + ] + }, + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29108:6:22", + "type": "" + } + ], + "src": "29010:182:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29344:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29354:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29420:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29425:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29361:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "29361:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29354:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29526:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "nodeType": "YulIdentifier", + "src": "29437:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "29437:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29437:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "29539:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29550:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29555:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29546:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29546:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29539:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29332:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29340:3:22", + "type": "" + } + ], + "src": "29198:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29741:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29751:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29763:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29774:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29759:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29759:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29751:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29798:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29809:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29794:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29794:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29817:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29823:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29813:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "29813:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29787:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "29787:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "29787:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "29843:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29977:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29851:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "29851:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29843:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29721:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29736:4:22", + "type": "" + } + ], + "src": "29570:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30101:72:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30123:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30131:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30119:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30119:14:22" + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30135:30:22", + "type": "", + "value": "ERC721: token already minted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30112:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30112:54:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30112:54:22" + } + ] + }, + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30093:6:22", + "type": "" + } + ], + "src": "29995:178:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30325:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30335:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30401:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30406:2:22", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30342:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "30342:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30335:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30507:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "nodeType": "YulIdentifier", + "src": "30418:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "30418:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30418:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "30520:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30531:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30536:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30527:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30527:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30520:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30313:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30321:3:22", + "type": "" + } + ], + "src": "30179:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30722:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30732:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30744:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30755:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30740:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30740:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30732:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30779:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30790:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30775:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30775:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30798:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30804:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30794:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "30794:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30768:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "30768:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "30768:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "30824:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30958:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30832:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "30832:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30824:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30702:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30717:4:22", + "type": "" + } + ], + "src": "30551:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31130:288:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31140:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31152:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31163:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31148:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31148:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31140:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "31220:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31233:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31244:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31229:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31229:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31176:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31176:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31176:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "31301:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31314:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31325:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31310:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "31257:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31257:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31257:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "31383:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31396:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31407:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31392:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31392:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "31339:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "31339:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31339:72:22" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31086:9:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "31098:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "31106:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "31114:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31125:4:22", + "type": "" + } + ], + "src": "30976:442:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31530:69:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31552:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31560:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31548:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31548:14:22" + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31564:27:22", + "type": "", + "value": "ERC721: approve to caller" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31541:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "31541:51:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31541:51:22" + } + ] + }, + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31522:6:22", + "type": "" + } + ], + "src": "31424:175:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31751:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31761:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31827:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31832:2:22", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31768:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "31768:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31761:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31933:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "nodeType": "YulIdentifier", + "src": "31844:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "31844:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "31844:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "31946:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31957:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31962:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "31953:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31946:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31739:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31747:3:22", + "type": "" + } + ], + "src": "31605:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32148:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32158:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32170:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32181:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32166:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32166:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32158:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32205:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32216:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32201:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32201:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32224:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32230:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32220:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32220:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32194:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32194:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32194:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "32250:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32384:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32258:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "32258:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32250:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32128:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32143:4:22", + "type": "" + } + ], + "src": "31977:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32508:131:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32530:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32538:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32526:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32526:14:22" + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e204552433732315265", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32542:34:22", + "type": "", + "value": "ERC721: transfer to non ERC721Re" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32519:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32519:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32519:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32598:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32606:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32594:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32594:15:22" + }, + { + "hexValue": "63656976657220696d706c656d656e746572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32611:20:22", + "type": "", + "value": "ceiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32587:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "32587:45:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32587:45:22" + } + ] + }, + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32500:6:22", + "type": "" + } + ], + "src": "32402:237:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32791:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32801:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32867:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32872:2:22", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32808:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "32808:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32801:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32973:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "nodeType": "YulIdentifier", + "src": "32884:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "32884:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "32884:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "32986:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32997:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33002:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32993:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "32993:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32986:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32779:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32787:3:22", + "type": "" + } + ], + "src": "32645:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33188:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33198:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33210:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33221:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33206:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33206:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33198:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33245:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33256:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33241:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33241:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33264:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33270:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33260:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33260:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33234:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33234:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33234:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "33290:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33424:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33298:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "33298:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33290:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33168:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33183:4:22", + "type": "" + } + ], + "src": "33017:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33470:152:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33487:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33490:77:22", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33480:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33480:88:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33480:88:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33584:1:22", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33587:4:22", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33577:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33577:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33577:15:22" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33608:1:22", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33611:4:22", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "33601:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "33601:15:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33601:15:22" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "33442:180:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33688:77:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33698:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "33713:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "33707:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "33707:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33698:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "33753:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "33729:23:22" + }, + "nodeType": "YulFunctionCall", + "src": "33729:30:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33729:30:22" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "33666:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33674:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "33682:5:22", + "type": "" + } + ], + "src": "33628:137:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33845:271:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "33891:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "33893:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "33893:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "33893:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "33866:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33875:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "33862:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33862:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33887:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "33858:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "33858:32:22" + }, + "nodeType": "YulIf", + "src": "33855:119:22" + }, + { + "nodeType": "YulBlock", + "src": "33984:125:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "33999:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34013:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "34003:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "34028:71:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34071:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "34082:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34067:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34067:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "34091:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "34038:28:22" + }, + "nodeType": "YulFunctionCall", + "src": "34038:61:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34028:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33815:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "33826:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33838:6:22", + "type": "" + } + ], + "src": "33771:345:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34228:123:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34250:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34258:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34246:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34246:14:22" + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34262:34:22", + "type": "", + "value": "SafeERC20: ERC20 operation did n" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34239:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34239:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34239:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "34318:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34326:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34314:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34314:15:22" + }, + { + "hexValue": "6f742073756363656564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "34331:12:22", + "type": "", + "value": "ot succeed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34307:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34307:37:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34307:37:22" + } + ] + }, + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "34220:6:22", + "type": "" + } + ], + "src": "34122:229:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34503:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34513:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34579:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34584:2:22", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34520:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "34520:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34513:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34685:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "nodeType": "YulIdentifier", + "src": "34596:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "34596:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34596:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "34698:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34709:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34714:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34705:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34705:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34698:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34491:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34499:3:22", + "type": "" + } + ], + "src": "34357:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34900:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34910:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34922:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34933:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34918:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34918:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34910:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34957:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34968:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34953:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34953:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34976:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34982:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34972:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "34972:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34946:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "34946:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "34946:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "35002:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35136:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35010:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "35010:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35002:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34880:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34895:4:22", + "type": "" + } + ], + "src": "34729:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35212:40:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35223:22:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35239:5:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "35233:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "35233:12:22" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35223:6:22" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35195:5:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35205:6:22", + "type": "" + } + ], + "src": "35154:98:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35353:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35370:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35375:6:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35363:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "35363:19:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35363:19:22" + }, + { + "nodeType": "YulAssignment", + "src": "35391:29:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35410:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35415:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35406:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35406:14:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "35391:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35325:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35330:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "35341:11:22", + "type": "" + } + ], + "src": "35258:168:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35522:283:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "35532:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35578:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "35546:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "35546:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "35536:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "35593:77:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35658:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35663:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35600:57:22" + }, + "nodeType": "YulFunctionCall", + "src": "35600:70:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35593:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "35718:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35725:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35714:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35714:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35732:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35737:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "35679:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "35679:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "35679:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "35753:46:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35764:3:22" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "35791:6:22" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "35769:21:22" + }, + "nodeType": "YulFunctionCall", + "src": "35769:29:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35760:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "35760:39:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35753:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "35503:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35510:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35518:3:22", + "type": "" + } + ], + "src": "35432:373:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36011:440:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36021:27:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36033:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36044:3:22", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36029:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36029:19:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36021:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36102:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36115:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36126:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36111:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36111:17:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "36058:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36058:71:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36058:71:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "36183:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36196:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36207:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36192:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36192:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "36139:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36139:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36139:72:22" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "36265:6:22" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36278:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36289:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36274:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36274:18:22" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "36221:43:22" + }, + "nodeType": "YulFunctionCall", + "src": "36221:72:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36221:72:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36314:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36325:2:22", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36310:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36310:18:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36334:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36340:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36330:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36330:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36303:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "36303:48:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36303:48:22" + }, + { + "nodeType": "YulAssignment", + "src": "36360:84:22", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "36430:6:22" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36439:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36368:61:22" + }, + "nodeType": "YulFunctionCall", + "src": "36368:76:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36360:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35959:9:22", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "35971:6:22", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "35979:6:22", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35987:6:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35995:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36006:4:22", + "type": "" + } + ], + "src": "35811:640:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36519:79:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36529:22:22", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36544:6:22" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36538:5:22" + }, + "nodeType": "YulFunctionCall", + "src": "36538:13:22" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36529:5:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36586:5:22" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "36560:25:22" + }, + "nodeType": "YulFunctionCall", + "src": "36560:32:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36560:32:22" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36497:6:22", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36505:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36513:5:22", + "type": "" + } + ], + "src": "36457:141:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36680:273:22", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "36726:83:22", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "36728:77:22" + }, + "nodeType": "YulFunctionCall", + "src": "36728:79:22" + }, + "nodeType": "YulExpressionStatement", + "src": "36728:79:22" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36701:7:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36710:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36697:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36697:23:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36722:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "36693:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36693:32:22" + }, + "nodeType": "YulIf", + "src": "36690:119:22" + }, + { + "nodeType": "YulBlock", + "src": "36819:127:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36834:15:22", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36848:1:22", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36838:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "36863:73:22", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36908:9:22" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "36919:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36904:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "36904:22:22" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "36928:7:22" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "36873:30:22" + }, + "nodeType": "YulFunctionCall", + "src": "36873:63:22" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36863:6:22" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36650:9:22", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "36661:7:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "36673:6:22", + "type": "" + } + ], + "src": "36604:349:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37065:119:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37087:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37095:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37083:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37083:14:22" + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37099:34:22", + "type": "", + "value": "Address: insufficient balance fo" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37076:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37076:58:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37076:58:22" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "37155:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37163:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37151:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37151:15:22" + }, + { + "hexValue": "722063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "37168:8:22", + "type": "", + "value": "r call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37144:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37144:33:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37144:33:22" + } + ] + }, + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "37057:6:22", + "type": "" + } + ], + "src": "36959:225:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37336:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37346:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37412:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37417:2:22", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37353:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "37353:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37346:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37518:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "nodeType": "YulIdentifier", + "src": "37429:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "37429:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37429:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "37531:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37542:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37547:2:22", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37538:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37538:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "37531:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "37324:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "37332:3:22", + "type": "" + } + ], + "src": "37190:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37733:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37743:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37755:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37766:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37751:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37751:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37743:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37790:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37801:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37786:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37786:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37809:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37815:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37805:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "37805:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37779:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "37779:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "37779:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "37835:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37969:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37843:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "37843:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37835:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37713:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37728:4:22", + "type": "" + } + ], + "src": "37562:419:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38100:34:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38110:18:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38125:3:22" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "38110:11:22" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38072:3:22", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "38077:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "38088:11:22", + "type": "" + } + ], + "src": "37987:147:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38248:278:22", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38258:52:22", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38304:5:22" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38272:31:22" + }, + "nodeType": "YulFunctionCall", + "src": "38272:38:22" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "38262:6:22", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38319:95:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38402:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38407:6:22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "38326:75:22" + }, + "nodeType": "YulFunctionCall", + "src": "38326:88:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38319:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38462:5:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38469:4:22", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38458:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38458:16:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38476:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38481:6:22" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "38423:34:22" + }, + "nodeType": "YulFunctionCall", + "src": "38423:65:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38423:65:22" + }, + { + "nodeType": "YulAssignment", + "src": "38497:23:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38508:3:22" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "38513:6:22" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38504:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38504:16:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38497:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38229:5:22", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38236:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38244:3:22", + "type": "" + } + ], + "src": "38140:386:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38666:137:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38677:100:22", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "38764:6:22" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38773:3:22" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "38684:79:22" + }, + "nodeType": "YulFunctionCall", + "src": "38684:93:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38677:3:22" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38787:10:22", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38794:3:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38787:3:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38645:3:22", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38651:6:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "38662:3:22", + "type": "" + } + ], + "src": "38532:271:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38915:73:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "38937:6:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38945:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38933:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "38933:14:22" + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "38949:31:22", + "type": "", + "value": "Address: call to non-contract" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38926:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "38926:55:22" + }, + "nodeType": "YulExpressionStatement", + "src": "38926:55:22" + } + ] + }, + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "38907:6:22", + "type": "" + } + ], + "src": "38809:179:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39140:220:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39150:74:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39216:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39221:2:22", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39157:58:22" + }, + "nodeType": "YulFunctionCall", + "src": "39157:67:22" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39150:3:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39322:3:22" + } + ], + "functionName": { + "name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "nodeType": "YulIdentifier", + "src": "39233:88:22" + }, + "nodeType": "YulFunctionCall", + "src": "39233:93:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39233:93:22" + }, + { + "nodeType": "YulAssignment", + "src": "39335:19:22", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "39346:3:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39351:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39342:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39342:12:22" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "39335:3:22" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "39128:3:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "39136:3:22", + "type": "" + } + ], + "src": "38994:366:22" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39537:248:22", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39547:26:22", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39559:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39570:2:22", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39555:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39555:18:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39547:4:22" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39594:9:22" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39605:1:22", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39590:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39590:17:22" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39613:4:22" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39619:9:22" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39609:3:22" + }, + "nodeType": "YulFunctionCall", + "src": "39609:20:22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39583:6:22" + }, + "nodeType": "YulFunctionCall", + "src": "39583:47:22" + }, + "nodeType": "YulExpressionStatement", + "src": "39583:47:22" + }, + { + "nodeType": "YulAssignment", + "src": "39639:139:22", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39773:4:22" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39647:124:22" + }, + "nodeType": "YulFunctionCall", + "src": "39647:131:22" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39639:4:22" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39517:9:22", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39532:4:22", + "type": "" + } + ], + "src": "39366:419:22" + } + ] + }, + "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_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 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_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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$777_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$777_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$777_to_t_address(value))\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 cleanup_t_uint128(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n }\n\n function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint128(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC20_$777_t_uint256_t_uint128_t_uint128__to_t_address_t_uint256_t_uint128_t_uint128__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_contract$_IERC20_$777_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_uint128_to_t_uint128_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint128_to_t_uint128_fromStack(value3, add(headStart, 96))\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 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 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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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__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 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 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_decode_tuple_t_addresst_addresst_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_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 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 abi_decode_tuple_t_address(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_address(add(headStart, offset), dataEnd)\n }\n\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 validator_revert_t_uint128(value) {\n if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint128(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint128(value)\n }\n\n function cleanup_t_contract$_IERC20_$777(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$777(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$777(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$777(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC20_$777(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint128t_contract$_IERC20_$777(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_uint128(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_contract$_IERC20_$777(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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_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_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 := 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 abi_decode_tuple_t_uint256t_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_uint256(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_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 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 store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approval to current owne\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__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_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve caller is not to\")\n\n mstore(add(memPtr, 32), \"ken owner or approved for all\")\n\n }\n\n function abi_encode_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n store_literal_in_memory_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__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_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: caller is not token owne\")\n\n mstore(add(memPtr, 32), \"r or approved\")\n\n }\n\n function abi_encode_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__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_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a__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_3fc1d1bb250d61765d4303eab46b26bb5ca6dce1bf3d88d4453d54beb164884a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(memPtr) {\n\n mstore(add(memPtr, 0), \"Not owner of NFT\")\n\n }\n\n function abi_encode_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721__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_c4a43c611968ec7565a8db7967f80ea40a0b06b4f2b3ed8286dbd1bbd126f721_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC5725: No pending payout\")\n\n }\n\n function abi_encode_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03__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_71ef47d6a5f8847fb44c19015b72557c7c22f25d416c3673fda733b82f984a03_to_t_string_memory_ptr_fromStack( tail)\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 store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: invalid token ID\")\n\n }\n\n function abi_encode_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__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_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: address zero is not a va\")\n\n mstore(add(memPtr, 32), \"lid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__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_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(memPtr) {\n\n mstore(add(memPtr, 0), \"to cannot be address 0\")\n\n }\n\n function abi_encode_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c__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_7b1d8df431d46e8335559be5c94ac3620ad2b54d1756bd14789043808fa8aa1c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860(memPtr) {\n\n mstore(add(memPtr, 0), \"release must be in future\")\n\n }\n\n function abi_encode_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860__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_17a68ef366a4e9bf1b54bdce2c63d9fe8f7a47e271f8ac8d69b7f1360dbc9860_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\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 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 abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer from incorrect \")\n\n mstore(add(memPtr, 32), \"owner\")\n\n }\n\n function abi_encode_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__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_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4_to_t_string_memory_ptr_fromStack( tail)\n\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 store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: token already minted\")\n\n }\n\n function abi_encode_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__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_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\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 }\n\n function store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: approve to caller\")\n\n }\n\n function abi_encode_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__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_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721: transfer to non ERC721Re\")\n\n mstore(add(memPtr, 32), \"ceiver implementer\")\n\n }\n\n function abi_encode_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n store_literal_in_memory_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__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_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n mstore(add(memPtr, 32), \"ot succeed\")\n\n }\n\n function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__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_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( 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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__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_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 mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, 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 store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n mstore(add(memPtr, 32), \"r call\")\n\n }\n\n function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__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_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n }\n\n function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__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_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 22, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x746B5D61 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xD744515F EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0xDB900B9D EQ PUSH2 0x496 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x4C6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x746B5D61 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x81D0526D EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x84E968E6 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x8B9CB90B EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x9E0BD808 EQ PUSH2 0x3CE JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x576561D2 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2D4 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x3101BFD EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x258E JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x570 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x270D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BD PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CA SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FA SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x286C JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x28AC JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x288 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x33A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xE34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x377 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x395 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x2825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B8 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3E3 SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F5 SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x418 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x2A6D JUMP JUMPDEST PUSH2 0x1072 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x2BE2 JUMP JUMPDEST PUSH2 0x1088 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x450 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x480 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x48D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0xd707c82a00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x569 JUMPI POP PUSH2 0x568 DUP3 PUSH2 0x126F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x607 SWAP1 PUSH2 0x2D14 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 0x633 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x680 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x655 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x680 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 0x663 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x695 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DB DUP3 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x74B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x742 SWAP1 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x76A PUSH2 0x139C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x799 JUMPI POP PUSH2 0x798 DUP2 PUSH2 0x793 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x11DB JUMP JUMPDEST JUMPDEST PUSH2 0x7D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7CF SWAP1 PUSH2 0x2E49 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7E2 DUP4 DUP4 PUSH2 0x13A4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x7F8 PUSH2 0x7F2 PUSH2 0x139C JUMP JUMPDEST DUP3 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x837 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82E SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x842 DUP4 DUP4 DUP4 PUSH2 0x14F2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x851 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x890 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x887 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8B0 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x906 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8FD SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x956 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94D SWAP1 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xE97CEE5A4C0549D3FDC81E322B718DDF0AEB3418EC87DCE4F9A7FB28D117C312 DUP4 PUSH1 0x40 MLOAD PUSH2 0x99D SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x9C8 SWAP2 SWAP1 PUSH2 0x306E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA02 CALLER DUP3 PUSH2 0x9DD DUP7 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x182C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA22 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1088 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xA34 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xA73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA6A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA7C DUP5 PUSH2 0x18B2 JUMP JUMPDEST PUSH2 0xA85 DUP6 PUSH2 0x1900 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA9B DUP4 PUSH2 0x194E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB85 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB7C SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC32 SWAP1 PUSH2 0x31EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xC8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC86 SWAP1 PUSH2 0x3258 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xDE9 SWAP1 PUSH2 0x3278 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xDF8 DUP6 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xE2D CALLER ADDRESS DUP7 PUSH2 0xE07 DUP6 PUSH2 0xF0A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1BA8 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xE40 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE76 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE88 DUP4 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0xE91 DUP5 PUSH2 0x1C31 JUMP JUMPDEST PUSH2 0xE9B SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEAF DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xEEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE5 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF16 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0xF55 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4C SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF5E DUP4 PUSH2 0x1C51 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xF75 SWAP1 PUSH2 0x2D14 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 0xFA1 SWAP1 PUSH2 0x2D14 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFEE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFC3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFEE 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 0xFD1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1004 DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1043 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103A SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x1060 DUP5 PUSH2 0x11C8 JUMP JUMPDEST PUSH2 0x106A SWAP2 SWAP1 PUSH2 0x32C0 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1084 PUSH2 0x107D PUSH2 0x139C JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1C91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1099 PUSH2 0x1093 PUSH2 0x139C JUMP JUMPDEST DUP4 PUSH2 0x145D JUMP JUMPDEST PUSH2 0x10D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CF SWAP1 PUSH2 0x2EDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10E4 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DFD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10F5 DUP3 PUSH2 0x1351 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FF PUSH2 0x1E59 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x111F JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x114A JUMP JUMPDEST DUP1 PUSH2 0x1129 DUP5 PUSH2 0x1E70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x113A SWAP3 SWAP2 SWAP1 PUSH2 0x3330 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x115E DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x119D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1194 SWAP1 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11A6 DUP5 PUSH2 0x1900 JUMP JUMPDEST DUP4 LT PUSH2 0x11BC JUMPI PUSH2 0x11B5 DUP5 PUSH2 0x1C31 JUMP JUMPDEST SWAP2 POP PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D4 DUP3 TIMESTAMP PUSH2 0x1152 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x133A JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x134A JUMPI POP PUSH2 0x1349 DUP3 PUSH2 0x1F3E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x135A DUP2 PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x1399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1390 SWAP1 PUSH2 0x30EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1417 DUP4 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1469 DUP4 PUSH2 0xA8F JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x14AB JUMPI POP PUSH2 0x14AA DUP2 DUP6 PUSH2 0x11DB JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x14E9 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14D1 DUP5 PUSH2 0x68A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1512 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1568 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155F SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CE SWAP1 PUSH2 0x3458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15E4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1604 DUP3 PUSH2 0xA8F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1651 SWAP1 PUSH2 0x33C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x17E6 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180D DUP4 PUSH2 0x194E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18AD DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x184B SWAP3 SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x19FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F1 SWAP1 PUSH2 0x34ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A03 DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A51 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FA8 JUMP JUMPDEST PUSH2 0x1A5A DUP2 PUSH2 0x17EB JUMP JUMPDEST ISZERO PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A91 SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 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 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1BA4 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1FAE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1C2B DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1BC9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3579 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1FB4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 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 PUSH1 0x7 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP1 PUSH2 0x35FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 0x1DF0 SWAP2 SWAP1 PUSH2 0x25D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1E08 DUP5 DUP5 DUP5 PUSH2 0x14F2 JUMP JUMPDEST PUSH2 0x1E14 DUP5 DUP5 DUP5 DUP5 PUSH2 0x207B JUMP JUMPDEST PUSH2 0x1E53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4A SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E7F DUP5 PUSH2 0x2202 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E9E JUMPI PUSH2 0x1E9D PUSH2 0x2AB7 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 0x1ED0 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 0x1F33 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F27 JUMPI PUSH2 0x1F26 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EDE JUMPI JUMPDEST DUP2 SWAP4 POP POP 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 POP POP POP POP JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2016 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2355 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2076 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x36F2 JUMP JUMPDEST PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x206C SWAP1 PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x209C DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x236D JUMP JUMPDEST ISZERO PUSH2 0x21F5 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x20C5 PUSH2 0x139C JUMP JUMPDEST DUP8 DUP7 DUP7 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3806 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2123 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 0x2120 SWAP2 SWAP1 PUSH2 0x3867 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x21A5 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2153 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 0x2158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x219D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2194 SWAP1 PUSH2 0x368E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP2 POP POP PUSH2 0x21FA JUMP JUMPDEST PUSH1 0x1 SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2260 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2256 JUMPI PUSH2 0x2255 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x229D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x2293 JUMPI PUSH2 0x2292 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22CC JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x22F5 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x22EB JUMPI PUSH2 0x22EA PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x231A JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2310 JUMPI PUSH2 0x230F PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x233D JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x2333 JUMPI PUSH2 0x2332 PUSH2 0x36AE JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x234C JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2364 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2390 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x23D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23CC SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x23FE SWAP2 SWAP1 PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243B 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 0x2440 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2451 DUP8 DUP4 DUP4 DUP8 PUSH2 0x245D JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x24BF JUMPI PUSH1 0x0 DUP4 MLOAD SUB PUSH2 0x24B7 JUMPI PUSH2 0x2477 DUP6 PUSH2 0x236D JUMP JUMPDEST PUSH2 0x24B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24AD SWAP1 PUSH2 0x39C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST DUP3 SWAP1 POP PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x24C9 DUP4 DUP4 PUSH2 0x24D2 JUMP JUMPDEST JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x24E5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2519 SWAP2 SWAP1 PUSH2 0x27E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x256B DUP2 PUSH2 0x2536 JUMP JUMPDEST DUP2 EQ PUSH2 0x2576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2588 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25A4 JUMPI PUSH2 0x25A3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25B2 DUP5 DUP3 DUP6 ADD PUSH2 0x2579 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x25D0 DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x25C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2604 DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP2 EQ PUSH2 0x260F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2621 DUP2 PUSH2 0x25FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x263D JUMPI PUSH2 0x263C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x264B DUP5 DUP3 DUP6 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2699 PUSH2 0x2694 PUSH2 0x268F DUP5 PUSH2 0x2654 JUMP JUMPDEST PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26AB DUP3 PUSH2 0x267E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BD DUP3 PUSH2 0x26A0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x26CD DUP2 PUSH2 0x26B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26DC DUP2 PUSH2 0x25F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2707 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2722 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x26C4 JUMP JUMPDEST PUSH2 0x272F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x273C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26FE JUMP JUMPDEST PUSH2 0x2749 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x26FE JUMP JUMPDEST SWAP6 SWAP5 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x278C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2771 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 0x27B4 DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x27BE DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST SWAP4 POP PUSH2 0x27CE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x27D7 DUP2 PUSH2 0x2798 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 0x27FC DUP2 DUP5 PUSH2 0x27A9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F DUP3 PUSH2 0x2654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x281F DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x283A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2816 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2849 DUP2 PUSH2 0x2804 JUMP JUMPDEST DUP2 EQ PUSH2 0x2854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2866 DUP2 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2882 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2891 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A2 DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28C5 JUMPI PUSH2 0x28C4 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28E4 DUP7 DUP3 DUP8 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x28F5 DUP7 DUP3 DUP8 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2914 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST PUSH2 0x2921 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x293E JUMPI PUSH2 0x293D PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294C DUP5 DUP3 DUP6 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x296A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x26E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x2984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2996 DUP2 PUSH2 0x2970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29A7 DUP3 PUSH2 0x2804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x29B7 DUP2 PUSH2 0x299C JUMP JUMPDEST DUP2 EQ PUSH2 0x29C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x29D4 DUP2 PUSH2 0x29AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29F4 JUMPI PUSH2 0x29F3 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A02 DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2A13 DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2A24 DUP8 DUP3 DUP9 ADD PUSH2 0x2987 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2A35 DUP8 DUP3 DUP9 ADD PUSH2 0x29C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2A4A DUP2 PUSH2 0x25BB JUMP JUMPDEST DUP2 EQ PUSH2 0x2A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A67 DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A84 JUMPI PUSH2 0x2A83 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A92 DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AA3 DUP6 DUP3 DUP7 ADD PUSH2 0x2A58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2AEF DUP3 PUSH2 0x2798 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2B0E JUMPI PUSH2 0x2B0D PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B21 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B2D DUP3 DUP3 PUSH2 0x2AE6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH2 0x2AB7 JUMP JUMPDEST JUMPDEST PUSH2 0x2B56 DUP3 PUSH2 0x2798 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 0x2B85 PUSH2 0x2B80 DUP5 PUSH2 0x2B32 JUMP JUMPDEST PUSH2 0x2B17 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2BA1 JUMPI PUSH2 0x2BA0 PUSH2 0x2AB2 JUMP JUMPDEST JUMPDEST PUSH2 0x2BAC DUP5 DUP3 DUP6 PUSH2 0x2B63 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BC9 JUMPI PUSH2 0x2BC8 PUSH2 0x2AAD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BD9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2B72 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BFC JUMPI PUSH2 0x2BFB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C0A DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C1B DUP8 DUP3 DUP9 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2C2C DUP8 DUP3 DUP9 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C4D JUMPI PUSH2 0x2C4C PUSH2 0x2531 JUMP JUMPDEST JUMPDEST PUSH2 0x2C59 DUP8 DUP3 DUP9 ADD PUSH2 0x2BB4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7C JUMPI PUSH2 0x2C7B PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C8A DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2C9B DUP6 DUP3 DUP7 ADD PUSH2 0x2612 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2CBC JUMPI PUSH2 0x2CBB PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2CCA DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2CDB DUP6 DUP3 DUP7 ADD PUSH2 0x2857 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x2D2C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D3F JUMPI PUSH2 0x2D3E PUSH2 0x2CE5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA1 PUSH1 0x21 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2DAC DUP3 PUSH2 0x2D45 JUMP JUMPDEST PUSH1 0x40 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 0x2DD0 DUP2 PUSH2 0x2D94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E33 PUSH1 0x3D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2E3E DUP3 PUSH2 0x2DD7 JUMP JUMPDEST PUSH1 0x40 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 0x2E62 DUP2 PUSH2 0x2E26 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EC5 PUSH1 0x2D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2ED0 DUP3 PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x40 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 0x2EF4 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A20696E76616C696420746F6B656E20494400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F31 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2F3C DUP3 PUSH2 0x2EFB 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 0x2F60 DUP2 PUSH2 0x2F24 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F74206F776E6572206F66204E465400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x10 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 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 0x2FCC DUP2 PUSH2 0x2F90 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243353732353A204E6F2070656E64696E67207061796F7574000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3009 PUSH1 0x1A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3014 DUP3 PUSH2 0x2FD3 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 0x3038 DUP2 PUSH2 0x2FFC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3079 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3084 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x309C JUMPI PUSH2 0x309B PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30D8 PUSH1 0x18 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x30E3 DUP3 PUSH2 0x30A2 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 0x3107 DUP2 PUSH2 0x30CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316A PUSH1 0x29 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3175 DUP3 PUSH2 0x310E JUMP JUMPDEST PUSH1 0x40 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 0x3199 DUP2 PUSH2 0x315D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x746F2063616E6E6F742062652061646472657373203000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31D6 PUSH1 0x16 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x31E1 DUP3 PUSH2 0x31A0 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 0x3205 DUP2 PUSH2 0x31C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x72656C65617365206D75737420626520696E2066757475726500000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3242 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x324D DUP3 PUSH2 0x320C 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 0x3271 DUP2 PUSH2 0x3235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3283 DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x32B5 JUMPI PUSH2 0x32B4 PUSH2 0x303F JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB DUP3 PUSH2 0x25F1 JUMP JUMPDEST SWAP2 POP PUSH2 0x32D6 DUP4 PUSH2 0x25F1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x32EE JUMPI PUSH2 0x32ED PUSH2 0x303F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x330A DUP3 PUSH2 0x2752 JUMP JUMPDEST PUSH2 0x3314 DUP2 DUP6 PUSH2 0x32F4 JUMP JUMPDEST SWAP4 POP PUSH2 0x3324 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x333C DUP3 DUP6 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP PUSH2 0x3348 DUP3 DUP5 PUSH2 0x32FF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33B0 PUSH1 0x25 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x33BB DUP3 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x40 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 0x33DF DUP2 PUSH2 0x33A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3442 PUSH1 0x24 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x344D DUP3 PUSH2 0x33E6 JUMP JUMPDEST PUSH1 0x40 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 0x3471 DUP2 PUSH2 0x3435 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x348D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x349A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34D7 PUSH1 0x20 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x34E2 DUP3 PUSH2 0x34A1 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 0x3506 DUP2 PUSH2 0x34CA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3543 PUSH1 0x1C DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x354E DUP3 PUSH2 0x350D 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 0x3572 DUP2 PUSH2 0x3536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x358E PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x359B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x35A8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x26D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E6 PUSH1 0x19 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x35F1 DUP3 PUSH2 0x35B0 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 0x3615 DUP2 PUSH2 0x35D9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3678 PUSH1 0x32 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3683 DUP3 PUSH2 0x361C JUMP JUMPDEST PUSH1 0x40 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 0x36A7 DUP2 PUSH2 0x366B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x36EC DUP2 PUSH2 0x2A41 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3708 JUMPI PUSH2 0x3707 PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3716 DUP5 DUP3 DUP6 ADD PUSH2 0x36DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377B PUSH1 0x2A DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x3786 DUP3 PUSH2 0x371F JUMP JUMPDEST PUSH1 0x40 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 0x37AA DUP2 PUSH2 0x376E JUMP JUMPDEST SWAP1 POP SWAP2 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 PUSH2 0x37D8 DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x37E2 DUP2 DUP6 PUSH2 0x37BC JUMP JUMPDEST SWAP4 POP PUSH2 0x37F2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST PUSH2 0x37FB DUP2 PUSH2 0x2798 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x381B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3828 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2816 JUMP JUMPDEST PUSH2 0x3835 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3847 DUP2 DUP5 PUSH2 0x37CD JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3861 DUP2 PUSH2 0x2562 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x252C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x388B DUP5 DUP3 DUP6 ADD PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38F0 PUSH1 0x26 DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x38FB DUP3 PUSH2 0x3894 JUMP JUMPDEST PUSH1 0x40 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 0x391F DUP2 PUSH2 0x38E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393C DUP3 PUSH2 0x37B1 JUMP JUMPDEST PUSH2 0x3946 DUP2 DUP6 PUSH2 0x3926 JUMP JUMPDEST SWAP4 POP PUSH2 0x3956 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x276E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396E DUP3 DUP5 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x1D DUP4 PUSH2 0x275D JUMP JUMPDEST SWAP2 POP PUSH2 0x39BA DUP3 PUSH2 0x3979 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 0x39DE DUP2 PUSH2 0x39A2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xBC SWAP5 PUSH27 0x635537FDA1DB652C421F31AD5F762A8C920AB72E4F2409561F0ECA 0x2C PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ", + "sourceMap": "88:2868:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:267:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;413:50:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2471:98:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;873:474:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5004:179:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2642:250:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2190:219:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1929:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1182:694:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1828:224:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:102:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:233:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4169:153:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2801:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1926:301:21;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:163:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:162:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:267:17;3350:14;3402:26;3387:41;;;:11;:41;;;;:81;;;;3432:36;3456:11;3432:23;:36::i;:::-;3387:81;3380:88;;3208:267;;;:::o;413:50:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2471:98:6:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;4071:15;:24;4087:7;4071:24;;;;;;;;;;;;;;;;;;;;;4064:31;;3935:167;;;:::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:5;3686:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;3711:37;3728:5;3735:12;:10;:12::i;:::-;3711:16;:37::i;:::-;3686:62;3665:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;4820:12;:10;:12::i;:::-;4834:7;4801:18;:41::i;:::-;4793:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;873:474:17:-;944:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;991:10:::1;971:30;;:16;979:7;971;:16::i;:::-;:30;;;963:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:21;1056:24;1072:7;1056:15;:24::i;:::-;1032:48;;1114:1;1098:13;:17;1090:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1185:10;1162:49;;1176:7;1162:49;1197:13;1162:49;;;;;;:::i;:::-;;;;;;;;1249:13;1222:14;:23;1237:7;1222:23;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;1272:68;1314:10;1326:13;1279:20;1291:7;1279:11;:20::i;:::-;1272:41;;;;:68;;;;;:::i;:::-;953:394;873:474:::0;;:::o;5004:179:6:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;:::-;5004:179;;;:::o;2642:250:17:-;2782:20;2804:18;2756:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:19:::1;2857:7;2846:10;:19::i;:::-;2867:17;2876:7;2867:8;:17::i;:::-;2838:47;;;;2642:250:::0;;;;:::o;2190:219:6:-;2262:7;2281:13;2297:17;2306:7;2297:8;:17::i;:::-;2281:33;;2349:1;2332:19;;:5;:19;;;2324:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:5;2390:12;;;2190:219;;;:::o;1929:204::-;2001:7;2045:1;2028:19;;:5;:19;;;2020:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2110:9;:16;2120:5;2110:16;;;;;;;;;;;;;;;;2103:23;;1929:204;;;:::o;1182:694:21:-;1351:1;1337:16;;:2;:16;;;1329:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1417:15;1398:16;:34;;;1390:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1473:18;1494:15;;1473:36;;1546:171;;;;;;;;1585:5;1546:171;;;;;;1612:6;1546:171;;;;1651:15;1546:171;;;;;;1690:16;1546:171;;;;;1520:11;:23;1532:10;1520:23;;;;;;;;;;;:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1728:15;;:17;;;;;;;;;:::i;:::-;;;;;;1755:21;1761:2;1765:10;1755:5;:21::i;:::-;1786:83;1835:10;1855:4;1862:6;1793:23;1805:10;1793:11;:23::i;:::-;1786:48;;;;:83;;;;;;:::i;:::-;1319:557;1182:694;;;;:::o;1828:224:17:-;1968:14;1942:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2024:21:::1;2037:7;2024:12;:21::i;:::-;2005:16;2013:7;2005;:16::i;:::-;:40;;;;:::i;:::-;1998:47;;1828:224:::0;;;;:::o;2385:207::-;2525:14;2499:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2562:14:::1;:23;2577:7;2562:23;;;;;;;;;;;;2555:30;;2385:207:::0;;;;:::o;2942:158::-;3040:13;3022:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3072:21:::1;3085:7;3072:12;:21::i;:::-;3065:28;;2942:158:::0;;;;:::o;2633:102:6:-;2689:13;2721:7;2714:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:102;:::o;2102:233:17:-;2244:14;2218:7;759:16;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:14:::1;:23;2320:7;2305:23;;;;;;;;;;;;2281:21;2294:7;2281:12;:21::i;:::-;:47;;;;:::i;:::-;2274:54;;2102:233:::0;;;;:::o;4169:153:6:-;4263:52;4282:12;:10;:12::i;:::-;4296:8;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;5436:12;:10;:12::i;:::-;5450:7;5417:18;:41::i;:::-;5409:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;:8;:10::i;:::-;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;;;2801:276;;;:::o;1926:301:21:-;2089:14;2063:7;759:16:17;767:7;759;:16::i;:::-;751:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2136:17:21::1;2145:7;2136:8;:17::i;:::-;2123:9;:30;2119:84;;2176:16;2184:7;2176;:16::i;:::-;2169:23;;;;2119:84;2219:1;2212:8;;815:1:17;1926:301:21::0;;;;;:::o;1397:163:17:-;1476:14;1509:44;1528:7;1537:15;1509:18;:44::i;:::-;1502:51;;1397:163;;;:::o;4388:162:6:-;4485:4;4508:18;:25;4527:5;4508:25;;;;;;;;;;;;;;;:35;4534:8;4508:35;;;;;;;;;;;;;;;;;;;;;;;;;4501:42;;4388:162;;;;:::o;1570:300::-;1672:4;1722:25;1707:40;;;:11;:40;;;;:104;;;;1778:33;1763:48;;;:11;:48;;;;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;:::-;1707:156;1688:175;;1570:300;;;:::o;13466:133::-;13547:16;13555:7;13547;:16::i;:::-;13539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:133;:::o;640:96:11:-;693:7;719:10;712:17;;640:96;:::o;12768:171:6:-;12869:2;12842:15;:24;12858:7;12842:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12924:7;12920:2;12886:46;;12895:23;12910:7;12895:14;:23::i;:::-;12886:46;;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;7706:16;;:7;:16;;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:52;:87;;;;7786:7;7762:31;;:20;7774:7;7762:11;:20::i;:::-;:31;;;7706:87;7698:96;;;7540:261;;;;:::o;11423:1233::-;11577:4;11550:31;;:23;11565:7;11550:14;:23::i;:::-;:31;;;11542:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:1;11641:16;;:2;:16;;;11633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;11851:31;;:23;11866:7;11851:14;:23::i;:::-;:31;;;11843:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:15;:24;12009:7;11993:24;;;;;;;;;;;;11986:31;;;;;;;;;;;12480:1;12461:9;:15;12471:4;12461:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;12512:1;12495:9;:13;12505:2;12495:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;12552:2;12533:7;:16;12541:7;12533:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12589:7;12585:2;12570:27;;12579:4;12570:27;;;;;;;;;;;;12608:41;12628:4;12634:2;12638:7;12647:1;12608:19;:41::i;:::-;11423:1233;;;:::o;7256:126::-;7321:4;7373:1;7344:31;;:17;7353:7;7344:8;:17::i;:::-;:31;;;;7337:38;;7256:126;;;:::o;763:205:5:-;875:86;895:5;925:23;;;950:2;954:5;902:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:19;:86::i;:::-;763:205;;;:::o;2645:132:21:-;2714:7;2740:11;:20;2752:7;2740:20;;;;;;;;;;;:30;;;;;;;;;;;;2733:37;;;;2645:132;;;:::o;2826:128::-;2893:7;2919:11;:20;2931:7;2919:20;;;;;;;;;;;:28;;;;;;;;;;;;2912:35;;;;2826:128;;;:::o;6838:115:6:-;6904:7;6930;:16;6938:7;6930:16;;;;;;;;;;;;;;;;;;;;;6923:23;;6838:115;;;:::o;9091:920::-;9184:1;9170:16;;:2;:16;;;9162:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:16;9250:7;9242;:16::i;:::-;9241:17;9233:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;9446:16;9454:7;9446;:16::i;:::-;9445:17;9437:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:1;9837:9;:13;9847:2;9837:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9895:2;9876:7;:16;9884:7;9876:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9938:7;9934:2;9913:33;;9930:1;9913:33;;;;;;;;;;;;9957:47;9985:1;9989:2;9993:7;10002:1;9957:19;:47::i;:::-;9091:920;;:::o;974:241:5:-;1112:96;1132:5;1162:27;;;1191:4;1197:2;1201:5;1139:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:19;:96::i;:::-;974:241;;;;:::o;2470:126:21:-;2536:7;2562:11;:20;2574:7;2562:20;;;;;;;;;;;:27;;;2555:34;;2470:126;;;:::o;2276:145::-;2347:7;2381:11;:20;2393:7;2381:20;;;;;;;;;;;:32;;;;;;;;;;;;2366:48;;2276:145;;;:::o;13075:307:6:-;13225:8;13216:17;;:5;:17;;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:8;13273:18;:25;13292:5;13273:25;;;;;;;;;;;;;;;:35;13299:8;13273:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13356:8;13334:41;;13349:5;13334:41;;;13366:8;13334:41;;;;;;:::i;:::-;;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6424:305;;;;:::o;3319:92::-;3370:13;3395:9;;;;;;;;;;;;;;3319:92;:::o;415:696:13:-;471:13;520:14;557:1;537:17;548:5;537:10;:17::i;:::-;:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:41;;627:11;753:6;749:2;745:15;737:6;733:28;726:35;;788:280;795:4;788:280;;;819:5;;;;;;;;958:8;953:2;946:5;942:14;937:30;932:3;924:44;1012:2;1003:11;;;;;;:::i;:::-;;;;;1045:1;1036:5;:10;788:280;1032:21;788:280;1088:6;1081:13;;;;;415:696;;;:::o;829:155:14:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;15698:154:6:-;;;;;:::o;16558:153::-;;;;;:::o;3747:706:5:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4166:95;;4295:1;4275:10;:17;:21;4271:176;;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:176;3817:636;3747:706;;:::o;14151:831:6:-;14300:4;14320:15;:2;:13;;;:15::i;:::-;14316:660;;;14371:2;14355:36;;;14392:12;:10;:12::i;:::-;14406:4;14412:7;14421:4;14355:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14610:1;14593:6;:13;:18;14589:321;;14635:60;;;;;;;;;;:::i;:::-;;;;;;;;14589:321;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14486:41;;;14476:51;;;:6;:51;;;;14469:58;;;;;14316:660;14961:4;14954:11;;14151:831;;;;;;;:::o;9889:890:16:-;9942:7;9961:14;9978:1;9961:18;;10026:6;10017:5;:15;10013:99;;10061:6;10052:15;;;;;;:::i;:::-;;;;;10095:2;10085:12;;;;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;;;;:::i;:::-;;;;;10207:2;10197:12;;;;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;;;;:::i;:::-;;;;;10319:2;10309:12;;;;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;;;;:::i;:::-;;;;;10429:1;10419:11;;;;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;;;;:::i;:::-;;;;;10538:1;10528:11;;;;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;;;;:::i;:::-;;;;;10647:1;10637:11;;;;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;;;;10676:64;10766:6;10759:13;;;9889:890;;;:::o;3873:223:10:-;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;;3873:223;;;;;:::o;1175:320::-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;4960:446::-;5125:12;5182:5;5157:21;:30;;5149:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5241:12;5255:23;5282:6;:11;;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;;;;4960:446;;;;;;:::o;7466:628::-;7646:12;7674:7;7670:418;;;7722:1;7701:10;:17;:22;7697:286;;7916:18;7927:6;7916:10;:18::i;:::-;7908:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:286;8003:10;7996:17;;;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;;:::o;8616:540::-;8795:1;8775:10;:17;:21;8771:379;;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:75:22;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:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:60::-;2369:3;2390:5;2383:12;;2341:60;;;:::o;2407:142::-;2457:9;2490:53;2508:34;2517:24;2535:5;2517:24;:::i;:::-;2508:34;:::i;:::-;2490:53;:::i;:::-;2477:66;;2407:142;;;:::o;2555:126::-;2605:9;2638:37;2669:5;2638:37;:::i;:::-;2625:50;;2555:126;;;:::o;2687:140::-;2751:9;2784:37;2815:5;2784:37;:::i;:::-;2771:50;;2687:140;;;:::o;2833:159::-;2934:51;2979:5;2934:51;:::i;:::-;2929:3;2922:64;2833:159;;:::o;2998:118::-;3085:24;3103:5;3085:24;:::i;:::-;3080:3;3073:37;2998:118;;:::o;3122:::-;3159:7;3199:34;3192:5;3188:46;3177:57;;3122:118;;;:::o;3246:::-;3333:24;3351:5;3333:24;:::i;:::-;3328:3;3321:37;3246:118;;:::o;3370:581::-;3561:4;3599:3;3588:9;3584:19;3576:27;;3613:85;3695:1;3684:9;3680:17;3671:6;3613:85;:::i;:::-;3708:72;3776:2;3765:9;3761:18;3752:6;3708:72;:::i;:::-;3790;3858:2;3847:9;3843:18;3834:6;3790:72;:::i;:::-;3872;3940:2;3929:9;3925:18;3916:6;3872:72;:::i;:::-;3370:581;;;;;;;:::o;3957:99::-;4009:6;4043:5;4037:12;4027:22;;3957:99;;;:::o;4062:169::-;4146:11;4180:6;4175:3;4168:19;4220:4;4215:3;4211:14;4196:29;;4062:169;;;;:::o;4237:246::-;4318:1;4328:113;4342:6;4339:1;4336:13;4328:113;;;4427:1;4422:3;4418:11;4412:18;4408:1;4403:3;4399:11;4392:39;4364:2;4361:1;4357:10;4352:15;;4328:113;;;4475:1;4466:6;4461:3;4457:16;4450:27;4299:184;4237:246;;;:::o;4489:102::-;4530:6;4581:2;4577:7;4572:2;4565:5;4561:14;4557:28;4547:38;;4489:102;;;:::o;4597:377::-;4685:3;4713:39;4746:5;4713:39;:::i;:::-;4768:71;4832:6;4827:3;4768:71;:::i;:::-;4761:78;;4848:65;4906:6;4901:3;4894:4;4887:5;4883:16;4848:65;:::i;:::-;4938:29;4960:6;4938:29;:::i;:::-;4933:3;4929:39;4922:46;;4689:285;4597:377;;;;:::o;4980:313::-;5093:4;5131:2;5120:9;5116:18;5108:26;;5180:9;5174:4;5170:20;5166:1;5155:9;5151:17;5144:47;5208:78;5281:4;5272:6;5208:78;:::i;:::-;5200:86;;4980:313;;;;:::o;5299:96::-;5336:7;5365:24;5383:5;5365:24;:::i;:::-;5354:35;;5299:96;;;:::o;5401:118::-;5488:24;5506:5;5488:24;:::i;:::-;5483:3;5476:37;5401:118;;:::o;5525:222::-;5618:4;5656:2;5645:9;5641:18;5633:26;;5669:71;5737:1;5726:9;5722:17;5713:6;5669:71;:::i;:::-;5525:222;;;;:::o;5753:122::-;5826:24;5844:5;5826:24;:::i;:::-;5819:5;5816:35;5806:63;;5865:1;5862;5855:12;5806:63;5753:122;:::o;5881:139::-;5927:5;5965:6;5952:20;5943:29;;5981:33;6008:5;5981:33;:::i;:::-;5881:139;;;;:::o;6026:474::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6277:1;6302:53;6347:7;6338:6;6327:9;6323:22;6302:53;:::i;:::-;6292:63;;6248:117;6404:2;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6375:118;6026:474;;;;;:::o;6506:619::-;6583:6;6591;6599;6648:2;6636:9;6627:7;6623:23;6619:32;6616:119;;;6654:79;;:::i;:::-;6616:119;6774:1;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6745:117;6901:2;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6872:118;7029:2;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7000:118;6506:619;;;;;:::o;7131:332::-;7252:4;7290:2;7279:9;7275:18;7267:26;;7303:71;7371:1;7360:9;7356:17;7347:6;7303:71;:::i;:::-;7384:72;7452:2;7441:9;7437:18;7428:6;7384:72;:::i;:::-;7131:332;;;;;:::o;7469:329::-;7528:6;7577:2;7565:9;7556:7;7552:23;7548:32;7545:119;;;7583:79;;:::i;:::-;7545:119;7703:1;7728:53;7773:7;7764:6;7753:9;7749:22;7728:53;:::i;:::-;7718:63;;7674:117;7469:329;;;;:::o;7804:222::-;7897:4;7935:2;7924:9;7920:18;7912:26;;7948:71;8016:1;8005:9;8001:17;7992:6;7948:71;:::i;:::-;7804:222;;;;:::o;8032:122::-;8105:24;8123:5;8105:24;:::i;:::-;8098:5;8095:35;8085:63;;8144:1;8141;8134:12;8085:63;8032:122;:::o;8160:139::-;8206:5;8244:6;8231:20;8222:29;;8260:33;8287:5;8260:33;:::i;:::-;8160:139;;;;:::o;8305:110::-;8356:7;8385:24;8403:5;8385:24;:::i;:::-;8374:35;;8305:110;;;:::o;8421:150::-;8508:38;8540:5;8508:38;:::i;:::-;8501:5;8498:49;8488:77;;8561:1;8558;8551:12;8488:77;8421:150;:::o;8577:167::-;8637:5;8675:6;8662:20;8653:29;;8691:47;8732:5;8691:47;:::i;:::-;8577:167;;;;:::o;8750:793::-;8850:6;8858;8866;8874;8923:3;8911:9;8902:7;8898:23;8894:33;8891:120;;;8930:79;;:::i;:::-;8891:120;9050:1;9075:53;9120:7;9111:6;9100:9;9096:22;9075:53;:::i;:::-;9065:63;;9021:117;9177:2;9203:53;9248:7;9239:6;9228:9;9224:22;9203:53;:::i;:::-;9193:63;;9148:118;9305:2;9331:53;9376:7;9367:6;9356:9;9352:22;9331:53;:::i;:::-;9321:63;;9276:118;9433:2;9459:67;9518:7;9509:6;9498:9;9494:22;9459:67;:::i;:::-;9449:77;;9404:132;8750:793;;;;;;;:::o;9549:116::-;9619:21;9634:5;9619:21;:::i;:::-;9612:5;9609:32;9599:60;;9655:1;9652;9645:12;9599:60;9549:116;:::o;9671:133::-;9714:5;9752:6;9739:20;9730:29;;9768:30;9792:5;9768:30;:::i;:::-;9671:133;;;;:::o;9810:468::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:50;10253:7;10244:6;10233:9;10229:22;10211:50;:::i;:::-;10201:60;;10156:115;9810:468;;;;;:::o;10284:117::-;10393:1;10390;10383:12;10407:117;10516:1;10513;10506:12;10530:180;10578:77;10575:1;10568:88;10675:4;10672:1;10665:15;10699:4;10696:1;10689:15;10716:281;10799:27;10821:4;10799:27;:::i;:::-;10791:6;10787:40;10929:6;10917:10;10914:22;10893:18;10881:10;10878:34;10875:62;10872:88;;;10940:18;;:::i;:::-;10872:88;10980:10;10976:2;10969:22;10759:238;10716:281;;:::o;11003:129::-;11037:6;11064:20;;:::i;:::-;11054:30;;11093:33;11121:4;11113:6;11093:33;:::i;:::-;11003:129;;;:::o;11138:307::-;11199:4;11289:18;11281:6;11278:30;11275:56;;;11311:18;;:::i;:::-;11275:56;11349:29;11371:6;11349:29;:::i;:::-;11341:37;;11433:4;11427;11423:15;11415:23;;11138:307;;;:::o;11451:146::-;11548:6;11543:3;11538;11525:30;11589:1;11580:6;11575:3;11571:16;11564:27;11451:146;;;:::o;11603:423::-;11680:5;11705:65;11721:48;11762:6;11721:48;:::i;:::-;11705:65;:::i;:::-;11696:74;;11793:6;11786:5;11779:21;11831:4;11824:5;11820:16;11869:3;11860:6;11855:3;11851:16;11848:25;11845:112;;;11876:79;;:::i;:::-;11845:112;11966:54;12013:6;12008:3;12003;11966:54;:::i;:::-;11686:340;11603:423;;;;;:::o;12045:338::-;12100:5;12149:3;12142:4;12134:6;12130:17;12126:27;12116:122;;12157:79;;:::i;:::-;12116:122;12274:6;12261:20;12299:78;12373:3;12365:6;12358:4;12350:6;12346:17;12299:78;:::i;:::-;12290:87;;12106:277;12045:338;;;;:::o;12389:943::-;12484:6;12492;12500;12508;12557:3;12545:9;12536:7;12532:23;12528:33;12525:120;;;12564:79;;:::i;:::-;12525:120;12684:1;12709:53;12754:7;12745:6;12734:9;12730:22;12709:53;:::i;:::-;12699:63;;12655:117;12811:2;12837:53;12882:7;12873:6;12862:9;12858:22;12837:53;:::i;:::-;12827:63;;12782:118;12939:2;12965:53;13010:7;13001:6;12990:9;12986:22;12965:53;:::i;:::-;12955:63;;12910:118;13095:2;13084:9;13080:18;13067:32;13126:18;13118:6;13115:30;13112:117;;;13148:79;;:::i;:::-;13112:117;13253:62;13307:7;13298:6;13287:9;13283:22;13253:62;:::i;:::-;13243:72;;13038:287;12389:943;;;;;;;:::o;13338:474::-;13406:6;13414;13463:2;13451:9;13442:7;13438:23;13434:32;13431:119;;;13469:79;;:::i;:::-;13431:119;13589:1;13614:53;13659:7;13650:6;13639:9;13635:22;13614:53;:::i;:::-;13604:63;;13560:117;13716:2;13742:53;13787:7;13778:6;13767:9;13763:22;13742:53;:::i;:::-;13732:63;;13687:118;13338:474;;;;;:::o;13818:::-;13886:6;13894;13943:2;13931:9;13922:7;13918:23;13914:32;13911:119;;;13949:79;;:::i;:::-;13911:119;14069:1;14094:53;14139:7;14130:6;14119:9;14115:22;14094:53;:::i;:::-;14084:63;;14040:117;14196:2;14222:53;14267:7;14258:6;14247:9;14243:22;14222:53;:::i;:::-;14212:63;;14167:118;13818:474;;;;;:::o;14298:180::-;14346:77;14343:1;14336:88;14443:4;14440:1;14433:15;14467:4;14464:1;14457:15;14484:320;14528:6;14565:1;14559:4;14555:12;14545:22;;14612:1;14606:4;14602:12;14633:18;14623:81;;14689:4;14681:6;14677:17;14667:27;;14623:81;14751:2;14743:6;14740:14;14720:18;14717:38;14714:84;;14770:18;;:::i;:::-;14714:84;14535:269;14484:320;;;:::o;14810:220::-;14950:34;14946:1;14938:6;14934:14;14927:58;15019:3;15014:2;15006:6;15002:15;14995:28;14810:220;:::o;15036:366::-;15178:3;15199:67;15263:2;15258:3;15199:67;:::i;:::-;15192:74;;15275:93;15364:3;15275:93;:::i;:::-;15393:2;15388:3;15384:12;15377:19;;15036:366;;;:::o;15408:419::-;15574:4;15612:2;15601:9;15597:18;15589:26;;15661:9;15655:4;15651:20;15647:1;15636:9;15632:17;15625:47;15689:131;15815:4;15689:131;:::i;:::-;15681:139;;15408:419;;;:::o;15833:248::-;15973:34;15969:1;15961:6;15957:14;15950:58;16042:31;16037:2;16029:6;16025:15;16018:56;15833:248;:::o;16087:366::-;16229:3;16250:67;16314:2;16309:3;16250:67;:::i;:::-;16243:74;;16326:93;16415:3;16326:93;:::i;:::-;16444:2;16439:3;16435:12;16428:19;;16087:366;;;:::o;16459:419::-;16625:4;16663:2;16652:9;16648:18;16640:26;;16712:9;16706:4;16702:20;16698:1;16687:9;16683:17;16676:47;16740:131;16866:4;16740:131;:::i;:::-;16732:139;;16459:419;;;:::o;16884:232::-;17024:34;17020:1;17012:6;17008:14;17001:58;17093:15;17088:2;17080:6;17076:15;17069:40;16884:232;:::o;17122:366::-;17264:3;17285:67;17349:2;17344:3;17285:67;:::i;:::-;17278:74;;17361:93;17450:3;17361:93;:::i;:::-;17479:2;17474:3;17470:12;17463:19;;17122:366;;;:::o;17494:419::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17494:419;;;:::o;17919:175::-;18059:27;18055:1;18047:6;18043:14;18036:51;17919:175;:::o;18100:366::-;18242:3;18263:67;18327:2;18322:3;18263:67;:::i;:::-;18256:74;;18339:93;18428:3;18339:93;:::i;:::-;18457:2;18452:3;18448:12;18441:19;;18100:366;;;:::o;18472:419::-;18638:4;18676:2;18665:9;18661:18;18653:26;;18725:9;18719:4;18715:20;18711:1;18700:9;18696:17;18689:47;18753:131;18879:4;18753:131;:::i;:::-;18745:139;;18472:419;;;:::o;18897:166::-;19037:18;19033:1;19025:6;19021:14;19014:42;18897:166;:::o;19069:366::-;19211:3;19232:67;19296:2;19291:3;19232:67;:::i;:::-;19225:74;;19308:93;19397:3;19308:93;:::i;:::-;19426:2;19421:3;19417:12;19410:19;;19069:366;;;:::o;19441:419::-;19607:4;19645:2;19634:9;19630:18;19622:26;;19694:9;19688:4;19684:20;19680:1;19669:9;19665:17;19658:47;19722:131;19848:4;19722:131;:::i;:::-;19714:139;;19441:419;;;:::o;19866:176::-;20006:28;20002:1;19994:6;19990:14;19983:52;19866:176;:::o;20048:366::-;20190:3;20211:67;20275:2;20270:3;20211:67;:::i;:::-;20204:74;;20287:93;20376:3;20287:93;:::i;:::-;20405:2;20400:3;20396:12;20389:19;;20048:366;;;:::o;20420:419::-;20586:4;20624:2;20613:9;20609:18;20601:26;;20673:9;20667:4;20663:20;20659:1;20648:9;20644:17;20637:47;20701:131;20827:4;20701:131;:::i;:::-;20693:139;;20420:419;;;:::o;20845:180::-;20893:77;20890:1;20883:88;20990:4;20987:1;20980:15;21014:4;21011:1;21004:15;21031:191;21071:3;21090:20;21108:1;21090:20;:::i;:::-;21085:25;;21124:20;21142:1;21124:20;:::i;:::-;21119:25;;21167:1;21164;21160:9;21153:16;;21188:3;21185:1;21182:10;21179:36;;;21195:18;;:::i;:::-;21179:36;21031:191;;;;:::o;21228:174::-;21368:26;21364:1;21356:6;21352:14;21345:50;21228:174;:::o;21408:366::-;21550:3;21571:67;21635:2;21630:3;21571:67;:::i;:::-;21564:74;;21647:93;21736:3;21647:93;:::i;:::-;21765:2;21760:3;21756:12;21749:19;;21408:366;;;:::o;21780:419::-;21946:4;21984:2;21973:9;21969:18;21961:26;;22033:9;22027:4;22023:20;22019:1;22008:9;22004:17;21997:47;22061:131;22187:4;22061:131;:::i;:::-;22053:139;;21780:419;;;:::o;22205:228::-;22345:34;22341:1;22333:6;22329:14;22322:58;22414:11;22409:2;22401:6;22397:15;22390:36;22205:228;:::o;22439:366::-;22581:3;22602:67;22666:2;22661:3;22602:67;:::i;:::-;22595:74;;22678:93;22767:3;22678:93;:::i;:::-;22796:2;22791:3;22787:12;22780:19;;22439:366;;;:::o;22811:419::-;22977:4;23015:2;23004:9;23000:18;22992:26;;23064:9;23058:4;23054:20;23050:1;23039:9;23035:17;23028:47;23092:131;23218:4;23092:131;:::i;:::-;23084:139;;22811:419;;;:::o;23236:172::-;23376:24;23372:1;23364:6;23360:14;23353:48;23236:172;:::o;23414:366::-;23556:3;23577:67;23641:2;23636:3;23577:67;:::i;:::-;23570:74;;23653:93;23742:3;23653:93;:::i;:::-;23771:2;23766:3;23762:12;23755:19;;23414:366;;;:::o;23786:419::-;23952:4;23990:2;23979:9;23975:18;23967:26;;24039:9;24033:4;24029:20;24025:1;24014:9;24010:17;24003:47;24067:131;24193:4;24067:131;:::i;:::-;24059:139;;23786:419;;;:::o;24211:175::-;24351:27;24347:1;24339:6;24335:14;24328:51;24211:175;:::o;24392:366::-;24534:3;24555:67;24619:2;24614:3;24555:67;:::i;:::-;24548:74;;24631:93;24720:3;24631:93;:::i;:::-;24749:2;24744:3;24740:12;24733:19;;24392:366;;;:::o;24764:419::-;24930:4;24968:2;24957:9;24953:18;24945:26;;25017:9;25011:4;25007:20;25003:1;24992:9;24988:17;24981:47;25045:131;25171:4;25045:131;:::i;:::-;25037:139;;24764:419;;;:::o;25189:233::-;25228:3;25251:24;25269:5;25251:24;:::i;:::-;25242:33;;25297:66;25290:5;25287:77;25284:103;;25367:18;;:::i;:::-;25284:103;25414:1;25407:5;25403:13;25396:20;;25189:233;;;:::o;25428:194::-;25468:4;25488:20;25506:1;25488:20;:::i;:::-;25483:25;;25522:20;25540:1;25522:20;:::i;:::-;25517:25;;25566:1;25563;25559:9;25551:17;;25590:1;25584:4;25581:11;25578:37;;;25595:18;;:::i;:::-;25578:37;25428:194;;;;:::o;25628:148::-;25730:11;25767:3;25752:18;;25628:148;;;;:::o;25782:390::-;25888:3;25916:39;25949:5;25916:39;:::i;:::-;25971:89;26053:6;26048:3;25971:89;:::i;:::-;25964:96;;26069:65;26127:6;26122:3;26115:4;26108:5;26104:16;26069:65;:::i;:::-;26159:6;26154:3;26150:16;26143:23;;25892:280;25782:390;;;;:::o;26178:435::-;26358:3;26380:95;26471:3;26462:6;26380:95;:::i;:::-;26373:102;;26492:95;26583:3;26574:6;26492:95;:::i;:::-;26485:102;;26604:3;26597:10;;26178:435;;;;;:::o;26619:224::-;26759:34;26755:1;26747:6;26743:14;26736:58;26828:7;26823:2;26815:6;26811:15;26804:32;26619:224;:::o;26849:366::-;26991:3;27012:67;27076:2;27071:3;27012:67;:::i;:::-;27005:74;;27088:93;27177:3;27088:93;:::i;:::-;27206:2;27201:3;27197:12;27190:19;;26849:366;;;:::o;27221:419::-;27387:4;27425:2;27414:9;27410:18;27402:26;;27474:9;27468:4;27464:20;27460:1;27449:9;27445:17;27438:47;27502:131;27628:4;27502:131;:::i;:::-;27494:139;;27221:419;;;:::o;27646:223::-;27786:34;27782:1;27774:6;27770:14;27763:58;27855:6;27850:2;27842:6;27838:15;27831:31;27646:223;:::o;27875:366::-;28017:3;28038:67;28102:2;28097:3;28038:67;:::i;:::-;28031:74;;28114:93;28203:3;28114:93;:::i;:::-;28232:2;28227:3;28223:12;28216:19;;27875:366;;;:::o;28247:419::-;28413:4;28451:2;28440:9;28436:18;28428:26;;28500:9;28494:4;28490:20;28486:1;28475:9;28471:17;28464:47;28528:131;28654:4;28528:131;:::i;:::-;28520:139;;28247:419;;;:::o;28672:332::-;28793:4;28831:2;28820:9;28816:18;28808:26;;28844:71;28912:1;28901:9;28897:17;28888:6;28844:71;:::i;:::-;28925:72;28993:2;28982:9;28978:18;28969:6;28925:72;:::i;:::-;28672:332;;;;;:::o;29010:182::-;29150:34;29146:1;29138:6;29134:14;29127:58;29010:182;:::o;29198:366::-;29340:3;29361:67;29425:2;29420:3;29361:67;:::i;:::-;29354:74;;29437:93;29526:3;29437:93;:::i;:::-;29555:2;29550:3;29546:12;29539:19;;29198:366;;;:::o;29570:419::-;29736:4;29774:2;29763:9;29759:18;29751:26;;29823:9;29817:4;29813:20;29809:1;29798:9;29794:17;29787:47;29851:131;29977:4;29851:131;:::i;:::-;29843:139;;29570:419;;;:::o;29995:178::-;30135:30;30131:1;30123:6;30119:14;30112:54;29995:178;:::o;30179:366::-;30321:3;30342:67;30406:2;30401:3;30342:67;:::i;:::-;30335:74;;30418:93;30507:3;30418:93;:::i;:::-;30536:2;30531:3;30527:12;30520:19;;30179:366;;;:::o;30551:419::-;30717:4;30755:2;30744:9;30740:18;30732:26;;30804:9;30798:4;30794:20;30790:1;30779:9;30775:17;30768:47;30832:131;30958:4;30832:131;:::i;:::-;30824:139;;30551:419;;;:::o;30976:442::-;31125:4;31163:2;31152:9;31148:18;31140:26;;31176:71;31244:1;31233:9;31229:17;31220:6;31176:71;:::i;:::-;31257:72;31325:2;31314:9;31310:18;31301:6;31257:72;:::i;:::-;31339;31407:2;31396:9;31392:18;31383:6;31339:72;:::i;:::-;30976:442;;;;;;:::o;31424:175::-;31564:27;31560:1;31552:6;31548:14;31541:51;31424:175;:::o;31605:366::-;31747:3;31768:67;31832:2;31827:3;31768:67;:::i;:::-;31761:74;;31844:93;31933:3;31844:93;:::i;:::-;31962:2;31957:3;31953:12;31946:19;;31605:366;;;:::o;31977:419::-;32143:4;32181:2;32170:9;32166:18;32158:26;;32230:9;32224:4;32220:20;32216:1;32205:9;32201:17;32194:47;32258:131;32384:4;32258:131;:::i;:::-;32250:139;;31977:419;;;:::o;32402:237::-;32542:34;32538:1;32530:6;32526:14;32519:58;32611:20;32606:2;32598:6;32594:15;32587:45;32402:237;:::o;32645:366::-;32787:3;32808:67;32872:2;32867:3;32808:67;:::i;:::-;32801:74;;32884:93;32973:3;32884:93;:::i;:::-;33002:2;32997:3;32993:12;32986:19;;32645:366;;;:::o;33017:419::-;33183:4;33221:2;33210:9;33206:18;33198:26;;33270:9;33264:4;33260:20;33256:1;33245:9;33241:17;33234:47;33298:131;33424:4;33298:131;:::i;:::-;33290:139;;33017:419;;;:::o;33442:180::-;33490:77;33487:1;33480:88;33587:4;33584:1;33577:15;33611:4;33608:1;33601:15;33628:137;33682:5;33713:6;33707:13;33698:22;;33729:30;33753:5;33729:30;:::i;:::-;33628:137;;;;:::o;33771:345::-;33838:6;33887:2;33875:9;33866:7;33862:23;33858:32;33855:119;;;33893:79;;:::i;:::-;33855:119;34013:1;34038:61;34091:7;34082:6;34071:9;34067:22;34038:61;:::i;:::-;34028:71;;33984:125;33771:345;;;;:::o;34122:229::-;34262:34;34258:1;34250:6;34246:14;34239:58;34331:12;34326:2;34318:6;34314:15;34307:37;34122:229;:::o;34357:366::-;34499:3;34520:67;34584:2;34579:3;34520:67;:::i;:::-;34513:74;;34596:93;34685:3;34596:93;:::i;:::-;34714:2;34709:3;34705:12;34698:19;;34357:366;;;:::o;34729:419::-;34895:4;34933:2;34922:9;34918:18;34910:26;;34982:9;34976:4;34972:20;34968:1;34957:9;34953:17;34946:47;35010:131;35136:4;35010:131;:::i;:::-;35002:139;;34729:419;;;:::o;35154:98::-;35205:6;35239:5;35233:12;35223:22;;35154:98;;;:::o;35258:168::-;35341:11;35375:6;35370:3;35363:19;35415:4;35410:3;35406:14;35391:29;;35258:168;;;;:::o;35432:373::-;35518:3;35546:38;35578:5;35546:38;:::i;:::-;35600:70;35663:6;35658:3;35600:70;:::i;:::-;35593:77;;35679:65;35737:6;35732:3;35725:4;35718:5;35714:16;35679:65;:::i;:::-;35769:29;35791:6;35769:29;:::i;:::-;35764:3;35760:39;35753:46;;35522:283;35432:373;;;;:::o;35811:640::-;36006:4;36044:3;36033:9;36029:19;36021:27;;36058:71;36126:1;36115:9;36111:17;36102:6;36058:71;:::i;:::-;36139:72;36207:2;36196:9;36192:18;36183:6;36139:72;:::i;:::-;36221;36289:2;36278:9;36274:18;36265:6;36221:72;:::i;:::-;36340:9;36334:4;36330:20;36325:2;36314:9;36310:18;36303:48;36368:76;36439:4;36430:6;36368:76;:::i;:::-;36360:84;;35811:640;;;;;;;:::o;36457:141::-;36513:5;36544:6;36538:13;36529:22;;36560:32;36586:5;36560:32;:::i;:::-;36457:141;;;;:::o;36604:349::-;36673:6;36722:2;36710:9;36701:7;36697:23;36693:32;36690:119;;;36728:79;;:::i;:::-;36690:119;36848:1;36873:63;36928:7;36919:6;36908:9;36904:22;36873:63;:::i;:::-;36863:73;;36819:127;36604:349;;;;:::o;36959:225::-;37099:34;37095:1;37087:6;37083:14;37076:58;37168:8;37163:2;37155:6;37151:15;37144:33;36959:225;:::o;37190:366::-;37332:3;37353:67;37417:2;37412:3;37353:67;:::i;:::-;37346:74;;37429:93;37518:3;37429:93;:::i;:::-;37547:2;37542:3;37538:12;37531:19;;37190:366;;;:::o;37562:419::-;37728:4;37766:2;37755:9;37751:18;37743:26;;37815:9;37809:4;37805:20;37801:1;37790:9;37786:17;37779:47;37843:131;37969:4;37843:131;:::i;:::-;37835:139;;37562:419;;;:::o;37987:147::-;38088:11;38125:3;38110:18;;37987:147;;;;:::o;38140:386::-;38244:3;38272:38;38304:5;38272:38;:::i;:::-;38326:88;38407:6;38402:3;38326:88;:::i;:::-;38319:95;;38423:65;38481:6;38476:3;38469:4;38462:5;38458:16;38423:65;:::i;:::-;38513:6;38508:3;38504:16;38497:23;;38248:278;38140:386;;;;:::o;38532:271::-;38662:3;38684:93;38773:3;38764:6;38684:93;:::i;:::-;38677:100;;38794:3;38787:10;;38532:271;;;;:::o;38809:179::-;38949:31;38945:1;38937:6;38933:14;38926:55;38809:179;:::o;38994:366::-;39136:3;39157:67;39221:2;39216:3;39157:67;:::i;:::-;39150:74;;39233:93;39322:3;39233:93;:::i;:::-;39351:2;39346:3;39342:12;39335:19;;38994:366;;;:::o;39366:419::-;39532:4;39570:2;39559:9;39555:18;39547:26;;39619:9;39613:4;39609:20;39605:1;39594:9;39590:17;39583:47;39647:131;39773:4;39647:131;:::i;:::-;39639:139;;39366:419;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "claim(uint256)": "379607f5", + "claimablePayout(uint256)": "9e0bd808", + "claimedPayout(uint256)": "84e968e6", + "create(address,uint256,uint128,address)": "746b5d61", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "payoutToken(uint256)": "8b9cb90b", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "vestDetails(uint256)": "03101bfd", + "vestedPayout(uint256)": "db900b9d", + "vestedPayoutAtTime(uint256,uint256)": "d744515f", + "vestingPayout(uint256)": "81d0526d", + "vestingPeriod(uint256)": "576561d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"PayoutClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimablePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"releaseTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"payoutToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"vestDetails\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"payoutToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"startTime\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"endTime\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestedPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedPayoutAtTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"vestingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"vestingStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"claim(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimablePayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"claimedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token.\"},\"create(address,uint256,uint128,address)\":{\"details\":\"Token amount should be approved to be transferred by this contract before executing create\",\"params\":{\"amount\":\"The total assets to be locked over time\",\"releaseTimestamp\":\"When the full amount of tokens get released\",\"to\":\"The recipient of the NFT\",\"token\":\"The ERC20 token to vest over time\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"payoutToken(uint256)\":{\"details\":\"See {IERC5725}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. IERC5725 interfaceId = 0xd707c82a\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"vestedPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestedPayoutAtTime(uint256,uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPayout(uint256)\":{\"details\":\"See {IERC5725}.\"},\"vestingPeriod(uint256)\":{\"details\":\"See {IERC5725}.\"}},\"stateVariables\":{\"_tokenIdTracker\":{\"details\":\"tracker of current NFT id\"}},\"version\":1},\"userdoc\":{\"events\":{\"PayoutClaimed(uint256,address,uint256)\":{\"notice\":\"This event is emitted when the payout is claimed through the claim function\"}},\"kind\":\"user\",\"methods\":{\"create(address,uint256,uint128,address)\":{\"notice\":\"Creates a new vesting NFT and mints it\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/reference/VestingNFT.sol\":\"VestingNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/ERC5725.sol\":{\"keccak256\":\"0x0a4eb8e74a6f65566d43a858a23bbb43ae7aed11df3b681c3da4a4a54cec18cd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4b02e95da68f2b97ef11626c9ef4d053c90d205d8e05e29f6d1522d9f9aab871\",\"dweb:/ipfs/QmV891QXHpR4QfJWi8xCFhqscVRniBdtqjjciRRhrY9mEo\"]},\"contracts/IERC5725.sol\":{\"keccak256\":\"0x07e12ddb16462d74d868575fa2c2aff5806eac11709f53e9bdc9ca6fce10a510\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://93b6ca2bb7e78d1a513de1e6727f6f9cff67d1b3d311e94796e934d8b70564f5\",\"dweb:/ipfs/QmfPdVZZAyab4gm6XK6znck5Lko7JCW5dLsgojoKqQbg2W\"]},\"contracts/reference/VestingNFT.sol\":{\"keccak256\":\"0x4461506313cdffc7213eea9d9866008b1001e0019b7ba36ec10eac8c0eb679c3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://cdd7b2f4dc580d3807da2e0119655929e010237b3270c6f48e9b48a8b8893c4b\",\"dweb:/ipfs/QmWde2WyRhWcEmSjgbW85eJ6Hu937FH5wXYWfNkmY8CWrQ\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/tasks/20230212-vesting-nft/contract-artifacts/LinearVestingNFT.json b/tasks/20230212-vesting-nft/contract-artifacts/LinearVestingNFT.json new file mode 100644 index 0000000..81b855b --- /dev/null +++ b/tasks/20230212-vesting-nft/contract-artifacts/LinearVestingNFT.json @@ -0,0 +1,615 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LinearVestingNFT", + "sourceName": "contracts/reference/LinearVestingNFT.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "duration", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "cliff", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162004306380380620043068339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613d4580620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806381d0526d116100c3578063b88d4fde1161007c578063b88d4fde146103ff578063c196f42f1461041b578063c87b56dd14610437578063d744515f14610467578063db900b9d14610497578063e985e9c5146104c75761014d565b806381d0526d1461030557806384e968e6146103355780638b9cb90b1461036557806395d89b41146103955780639e0bd808146103b3578063a22cb465146103e35761014d565b806323b872dd1161011557806323b872dd14610220578063379607f51461023c57806342842e0e14610258578063576561d2146102745780636352211e146102a557806370a08231146102d55761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b6578063081812fc146101d4578063095ea7b314610204575b600080fd5b61016c6004803603810190610167919061273b565b6104f7565b6040516101799190612783565b60405180910390f35b61019c600480360381019061019791906127d4565b610571565b6040516101ad9594939291906128ba565b60405180910390f35b6101be61061b565b6040516101cb919061299d565b60405180910390f35b6101ee60048036038101906101e991906127d4565b6106ad565b6040516101fb91906129e0565b60405180910390f35b61021e60048036038101906102199190612a27565b6106f3565b005b61023a60048036038101906102359190612a67565b61080a565b005b610256600480360381019061025191906127d4565b61086a565b005b610272600480360381019061026d9190612a67565b610a2a565b005b61028e600480360381019061028991906127d4565b610a4a565b60405161029c929190612aba565b60405180910390f35b6102bf60048036038101906102ba91906127d4565b610ab2565b6040516102cc91906129e0565b60405180910390f35b6102ef60048036038101906102ea9190612ae3565b610b38565b6040516102fc9190612b10565b60405180910390f35b61031f600480360381019061031a91906127d4565b610bef565b60405161032c9190612b10565b60405180910390f35b61034f600480360381019061034a91906127d4565b610c5e565b60405161035c9190612b10565b60405180910390f35b61037f600480360381019061037a91906127d4565b610cc5565b60405161038c91906129e0565b60405180910390f35b61039d610d21565b6040516103aa919061299d565b60405180910390f35b6103cd60048036038101906103c891906127d4565b610db3565b6040516103da9190612b10565b60405180910390f35b6103fd60048036038101906103f89190612b57565b610e2d565b005b61041960048036038101906104149190612ccc565b610e43565b005b61043560048036038101906104309190612db9565b610ea5565b005b610451600480360381019061044c91906127d4565b6111e4565b60405161045e919061299d565b60405180910390f35b610481600480360381019061047c9190612e46565b61124c565b60405161048e9190612b10565b60405180910390f35b6104b160048036038101906104ac91906127d4565b611327565b6040516104be9190612b10565b60405180910390f35b6104e160048036038101906104dc9190612e86565b61133a565b6040516104ee9190612783565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056a5750610569826113ce565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16908060030160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60606000805461062a90612ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461065690612ef5565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b8826114b0565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106fe82610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612f98565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614806107bc57506107bb816107b66114fb565b61133a565b5b6107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f29061302a565b60405180910390fd5b6108058383611503565b505050565b61081b6108156114fb565b826115bc565b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906130bc565b60405180910390fd5b610865838383611651565b505050565b806108748161194a565b6108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108d383610ab2565b73ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090613194565b60405180910390fd5b600061093483610db3565b905060008111610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613200565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c312836040516109c09190612b10565b60405180910390a3806006600085815260200190815260200160002060008282546109eb919061324f565b92505081905550610a253382610a0086610cc5565b73ffffffffffffffffffffffffffffffffffffffff1661198b9092919063ffffffff16565b505050565b610a4583838360405180602001604052806000815250610e43565b505050565b60008082610a578161194a565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90613128565b60405180910390fd5b610a9f84611a11565b610aa885611a5f565b9250925050915091565b600080610abe83611aad565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906132cf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90613361565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081610bfb8161194a565b610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190613128565b60405180910390fd5b610c4383611327565b610c4c84611aea565b610c569190613381565b915050919050565b600081610c6a8161194a565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613128565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610cd18161194a565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613128565b60405180910390fd5b610d1983611b0a565b915050919050565b606060018054610d3090612ef5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5c90612ef5565b8015610da95780601f10610d7e57610100808354040283529160200191610da9565b820191906000526020600020905b815481529060010190602001808311610d8c57829003601f168201915b5050505050905090565b600081610dbf8161194a565b610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613128565b60405180910390fd5b6006600084815260200190815260200160002054610e1b84611327565b610e259190613381565b915050919050565b610e3f610e386114fb565b8383611b4a565b5050565b610e54610e4e6114fb565b836115bc565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a906130bc565b60405180910390fd5b610e9f84848484611cb6565b50505050565b42846fffffffffffffffffffffffffffffffff161015610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f609061346d565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906134ff565b60405180910390fd5b600060085490506040518060a001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001866fffffffffffffffffffffffffffffffff1681526020018587611028919061351f565b6fffffffffffffffffffffffffffffffff168152602001848761104b919061351f565b6fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160030160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506008600081548092919061119790613563565b91905055506111a68782611d12565b6111db3330886111b585610cc5565b73ffffffffffffffffffffffffffffffffffffffff16611f2f909392919063ffffffff16565b50505050505050565b60606111ef826114b0565b60006111f9611fb8565b905060008151116112195760405180602001604052806000815250611244565b8061122384611fcf565b6040516020016112349291906135e7565b6040516020818303038152906040525b915050919050565b6000826112588161194a565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613128565b60405180910390fd5b6112a08461209d565b8310156112b05760009150611320565b6112b984611a5f565b8311156112d0576112c984611aea565b9150611320565b6112d984611a11565b6112e285611a5f565b6112ec9190613381565b6112f585611a11565b846113009190613381565b61130986611aea565b611313919061360b565b61131d919061367c565b91505b5092915050565b6000611333824261124c565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061149957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114a957506114a8826120eb565b5b9050919050565b6114b98161194a565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef906132cf565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661157683610ab2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806115c883610ab2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061160a5750611609818561133a565b5b8061164857508373ffffffffffffffffffffffffffffffffffffffff16611630846106ad565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661167182610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061371f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906137b1565b60405180910390fd5b6117438383836001612155565b8273ffffffffffffffffffffffffffffffffffffffff1661176382610ab2565b73ffffffffffffffffffffffffffffffffffffffff16146117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09061371f565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611945838383600161215b565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661196c83611aad565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a0c8363a9059cbb60e01b84846040516024016119aa9291906137d1565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611baf90613846565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ca99190612783565b60405180910390a3505050565b611cc1848484611651565b611ccd84848484612228565b611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d03906138d8565b60405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7890613944565b60405180910390fd5b611d8a8161194a565b15611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc1906139b0565b60405180910390fd5b611dd8600083836001612155565b611de18161194a565b15611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906139b0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f2b60008383600161215b565b5050565b611fb2846323b872dd60e01b858585604051602401611f50939291906139d0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612161565b50505050565b606060405180602001604052806000815250905090565b606060006001611fde846123af565b01905060008167ffffffffffffffff811115611ffd57611ffc612ba1565b5b6040519080825280601f01601f19166020018201604052801561202f5781602001600182028036833780820191505090505b509050600082602001820190505b600115612092578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120865761208561364d565b5b0494506000850361203d575b819350505050919050565b60006007600083815260200190815260200160002060030160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b60006121c3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125029092919063ffffffff16565b905060008151111561222357808060200190518101906121e39190613a1c565b612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990613abb565b60405180910390fd5b5b505050565b60006122498473ffffffffffffffffffffffffffffffffffffffff1661251a565b156123a2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122726114fb565b8786866040518563ffffffff1660e01b81526004016122949493929190613b30565b6020604051808303816000875af19250505080156122d057506040513d601f19601f820116820180604052508101906122cd9190613b91565b60015b612352573d8060008114612300576040519150601f19603f3d011682016040523d82523d6000602084013e612305565b606091505b50600081510361234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906138d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123a7565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061240d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124035761240261364d565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061244a576d04ee2d6d415b85acef810000000083816124405761243f61364d565b5b0492506020810190505b662386f26fc10000831061247957662386f26fc10000838161246f5761246e61364d565b5b0492506010810190505b6305f5e10083106124a2576305f5e10083816124985761249761364d565b5b0492506008810190505b61271083106124c75761271083816124bd576124bc61364d565b5b0492506004810190505b606483106124ea57606483816124e0576124df61364d565b5b0492506002810190505b600a83106124f9576001810190505b80915050919050565b6060612511848460008561253d565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606082471015612582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257990613c30565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516125ab9190613c8c565b60006040518083038185875af1925050503d80600081146125e8576040519150601f19603f3d011682016040523d82523d6000602084013e6125ed565b606091505b50915091506125fe8783838761260a565b92505050949350505050565b6060831561266c576000835103612664576126248561251a565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90613cef565b60405180910390fd5b5b829050612677565b612676838361267f565b5b949350505050565b6000825111156126925781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c6919061299d565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612718816126e3565b811461272357600080fd5b50565b6000813590506127358161270f565b92915050565b600060208284031215612751576127506126d9565b5b600061275f84828501612726565b91505092915050565b60008115159050919050565b61277d81612768565b82525050565b60006020820190506127986000830184612774565b92915050565b6000819050919050565b6127b18161279e565b81146127bc57600080fd5b50565b6000813590506127ce816127a8565b92915050565b6000602082840312156127ea576127e96126d9565b5b60006127f8848285016127bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061284661284161283c84612801565b612821565b612801565b9050919050565b60006128588261282b565b9050919050565b600061286a8261284d565b9050919050565b61287a8161285f565b82525050565b6128898161279e565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6128b48161288f565b82525050565b600060a0820190506128cf6000830188612871565b6128dc6020830187612880565b6128e960408301866128ab565b6128f660608301856128ab565b61290360808301846128ab565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561294757808201518184015260208101905061292c565b60008484015250505050565b6000601f19601f8301169050919050565b600061296f8261290d565b6129798185612918565b9350612989818560208601612929565b61299281612953565b840191505092915050565b600060208201905081810360008301526129b78184612964565b905092915050565b60006129ca82612801565b9050919050565b6129da816129bf565b82525050565b60006020820190506129f560008301846129d1565b92915050565b612a04816129bf565b8114612a0f57600080fd5b50565b600081359050612a21816129fb565b92915050565b60008060408385031215612a3e57612a3d6126d9565b5b6000612a4c85828601612a12565b9250506020612a5d858286016127bf565b9150509250929050565b600080600060608486031215612a8057612a7f6126d9565b5b6000612a8e86828701612a12565b9350506020612a9f86828701612a12565b9250506040612ab0868287016127bf565b9150509250925092565b6000604082019050612acf6000830185612880565b612adc6020830184612880565b9392505050565b600060208284031215612af957612af86126d9565b5b6000612b0784828501612a12565b91505092915050565b6000602082019050612b256000830184612880565b92915050565b612b3481612768565b8114612b3f57600080fd5b50565b600081359050612b5181612b2b565b92915050565b60008060408385031215612b6e57612b6d6126d9565b5b6000612b7c85828601612a12565b9250506020612b8d85828601612b42565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bd982612953565b810181811067ffffffffffffffff82111715612bf857612bf7612ba1565b5b80604052505050565b6000612c0b6126cf565b9050612c178282612bd0565b919050565b600067ffffffffffffffff821115612c3757612c36612ba1565b5b612c4082612953565b9050602081019050919050565b82818337600083830152505050565b6000612c6f612c6a84612c1c565b612c01565b905082815260208101848484011115612c8b57612c8a612b9c565b5b612c96848285612c4d565b509392505050565b600082601f830112612cb357612cb2612b97565b5b8135612cc3848260208601612c5c565b91505092915050565b60008060008060808587031215612ce657612ce56126d9565b5b6000612cf487828801612a12565b9450506020612d0587828801612a12565b9350506040612d16878288016127bf565b925050606085013567ffffffffffffffff811115612d3757612d366126de565b5b612d4387828801612c9e565b91505092959194509250565b612d588161288f565b8114612d6357600080fd5b50565b600081359050612d7581612d4f565b92915050565b6000612d86826129bf565b9050919050565b612d9681612d7b565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b60008060008060008060c08789031215612dd657612dd56126d9565b5b6000612de489828a01612a12565b9650506020612df589828a016127bf565b9550506040612e0689828a01612d66565b9450506060612e1789828a01612d66565b9350506080612e2889828a01612d66565b92505060a0612e3989828a01612da4565b9150509295509295509295565b60008060408385031215612e5d57612e5c6126d9565b5b6000612e6b858286016127bf565b9250506020612e7c858286016127bf565b9150509250929050565b60008060408385031215612e9d57612e9c6126d9565b5b6000612eab85828601612a12565b9250506020612ebc85828601612a12565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f0d57607f821691505b602082108103612f2057612f1f612ec6565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f82602183612918565b9150612f8d82612f26565b604082019050919050565b60006020820190508181036000830152612fb181612f75565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613014603d83612918565b915061301f82612fb8565b604082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006130a6602d83612918565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000613112601983612918565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b600061317e601083612918565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b60006131ea601a83612918565b91506131f5826131b4565b602082019050919050565b60006020820190508181036000830152613219816131dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061325a8261279e565b91506132658361279e565b925082820190508082111561327d5761327c613220565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132b9601883612918565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061334b602983612918565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b9050919050565b600061338c8261279e565b91506133978361279e565b92508282039050818111156133af576133ae613220565b5b92915050565b7f737461727454696d652063616e6e6f74206265206f6e20746865207061737400600082015250565b60006133eb601f83612918565b91506133f6826133b5565b602082019050919050565b6000602082019050818103600083015261341a816133de565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b6000613457601683612918565b915061346282613421565b602082019050919050565b600060208201905081810360008301526134868161344a565b9050919050565b7f6475726174696f6e206e6565647320746f206265206d6f7265207468616e206360008201527f6c69666600000000000000000000000000000000000000000000000000000000602082015250565b60006134e9602483612918565b91506134f48261348d565b604082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600061352a8261288f565b91506135358361288f565b925082820190506fffffffffffffffffffffffffffffffff81111561355d5761355c613220565b5b92915050565b600061356e8261279e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a05761359f613220565b5b600182019050919050565b600081905092915050565b60006135c18261290d565b6135cb81856135ab565b93506135db818560208601612929565b80840191505092915050565b60006135f382856135b6565b91506135ff82846135b6565b91508190509392505050565b60006136168261279e565b91506136218361279e565b925082820261362f8161279e565b9150828204841483151761364657613645613220565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136878261279e565b91506136928361279e565b9250826136a2576136a161364d565b5b828204905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613709602583612918565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379b602483612918565b91506137a68261373f565b604082019050919050565b600060208201905081810360008301526137ca8161378e565b9050919050565b60006040820190506137e660008301856129d1565b6137f36020830184612880565b9392505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613830601983612918565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138c2603283612918565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061392e602083612918565b9150613939826138f8565b602082019050919050565b6000602082019050818103600083015261395d81613921565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061399a601c83612918565b91506139a582613964565b602082019050919050565b600060208201905081810360008301526139c98161398d565b9050919050565b60006060820190506139e560008301866129d1565b6139f260208301856129d1565b6139ff6040830184612880565b949350505050565b600081519050613a1681612b2b565b92915050565b600060208284031215613a3257613a316126d9565b5b6000613a4084828501613a07565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613aa5602a83612918565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613b0282613adb565b613b0c8185613ae6565b9350613b1c818560208601612929565b613b2581612953565b840191505092915050565b6000608082019050613b4560008301876129d1565b613b5260208301866129d1565b613b5f6040830185612880565b8181036060830152613b718184613af7565b905095945050505050565b600081519050613b8b8161270f565b92915050565b600060208284031215613ba757613ba66126d9565b5b6000613bb584828501613b7c565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613c1a602683612918565b9150613c2582613bbe565b604082019050919050565b60006020820190508181036000830152613c4981613c0d565b9050919050565b600081905092915050565b6000613c6682613adb565b613c708185613c50565b9350613c80818560208601612929565b80840191505092915050565b6000613c988284613c5b565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613cd9601d83612918565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b905091905056fea26469706673582212205729ccb4d71d51cb046d97d5b0fcca978fd585cbf5594a674a87846920d1e45264736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/tasks/20230212-vesting-nft/contract-artifacts/VestingNFT.json b/tasks/20230212-vesting-nft/contract-artifacts/VestingNFT.json new file mode 100644 index 0000000..96d7578 --- /dev/null +++ b/tasks/20230212-vesting-nft/contract-artifacts/VestingNFT.json @@ -0,0 +1,600 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "VestingNFT", + "sourceName": "contracts/reference/VestingNFT.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "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": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "PayoutClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimablePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "claimedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "releaseTimestamp", + "type": "uint128" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "create", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "payoutToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "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": "supported", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vestDetails", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "payoutToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "startTime", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "endTime", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestedPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "vestedPayoutAtTime", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "vestingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "vestingStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vestingEnd", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162003fdc38038062003fdc8339818101604052810190620000379190620001fa565b818181600090816200004a9190620004ca565b5080600190816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b613a1b80620005c16000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063746b5d61116100c3578063a22cb4651161007c578063a22cb465146103fe578063b88d4fde1461041a578063c87b56dd14610436578063d744515f14610466578063db900b9d14610496578063e985e9c5146104c65761014d565b8063746b5d611461030457806381d0526d1461032057806384e968e6146103505780638b9cb90b1461038057806395d89b41146103b05780639e0bd808146103ce5761014d565b806323b872dd1161011557806323b872dd1461021f578063379607f51461023b57806342842e0e14610257578063576561d2146102735780636352211e146102a457806370a08231146102d45761014d565b806301ffc9a71461015257806303101bfd1461018257806306fdde03146101b5578063081812fc146101d3578063095ea7b314610203575b600080fd5b61016c6004803603810190610167919061258e565b6104f6565b60405161017991906125d6565b60405180910390f35b61019c60048036038101906101979190612627565b610570565b6040516101ac949392919061270d565b60405180910390f35b6101bd6105f8565b6040516101ca91906127e2565b60405180910390f35b6101ed60048036038101906101e89190612627565b61068a565b6040516101fa9190612825565b60405180910390f35b61021d6004803603810190610218919061286c565b6106d0565b005b610239600480360381019061023491906128ac565b6107e7565b005b61025560048036038101906102509190612627565b610847565b005b610271600480360381019061026c91906128ac565b610a07565b005b61028d60048036038101906102889190612627565b610a27565b60405161029b9291906128ff565b60405180910390f35b6102be60048036038101906102b99190612627565b610a8f565b6040516102cb9190612825565b60405180910390f35b6102ee60048036038101906102e99190612928565b610b15565b6040516102fb9190612955565b60405180910390f35b61031e600480360381019061031991906129da565b610bcc565b005b61033a60048036038101906103359190612627565b610e34565b6040516103479190612955565b60405180910390f35b61036a60048036038101906103659190612627565b610ea3565b6040516103779190612955565b60405180910390f35b61039a60048036038101906103959190612627565b610f0a565b6040516103a79190612825565b60405180910390f35b6103b8610f66565b6040516103c591906127e2565b60405180910390f35b6103e860048036038101906103e39190612627565b610ff8565b6040516103f59190612955565b60405180910390f35b61041860048036038101906104139190612a6d565b611072565b005b610434600480360381019061042f9190612be2565b611088565b005b610450600480360381019061044b9190612627565b6110ea565b60405161045d91906127e2565b60405180910390f35b610480600480360381019061047b9190612c65565b611152565b60405161048d9190612955565b60405180910390f35b6104b060048036038101906104ab9190612627565b6111c8565b6040516104bd9190612955565b60405180910390f35b6104e060048036038101906104db9190612ca5565b6111db565b6040516104ed91906125d6565b60405180910390f35b60007f7c89676d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056957506105688261126f565b5b9050919050565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905084565b60606000805461060790612d14565b80601f016020809104026020016040519081016040528092919081815260200182805461063390612d14565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600061069582611351565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106db82610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612db7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661076a61139c565b73ffffffffffffffffffffffffffffffffffffffff16148061079957506107988161079361139c565b6111db565b5b6107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cf90612e49565b60405180910390fd5b6107e283836113a4565b505050565b6107f86107f261139c565b8261145d565b610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612edb565b60405180910390fd5b6108428383836114f2565b505050565b80610851816117eb565b610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088790612f47565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108b083610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612fb3565b60405180910390fd5b600061091183610ff8565b905060008111610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061301f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16837fe97cee5a4c0549d3fdc81e322b718ddf0aeb3418ec87dce4f9a7fb28d117c3128360405161099d9190612955565b60405180910390a3806006600085815260200190815260200160002060008282546109c8919061306e565b92505081905550610a0233826109dd86610f0a565b73ffffffffffffffffffffffffffffffffffffffff1661182c9092919063ffffffff16565b505050565b610a2283838360405180602001604052806000815250611088565b505050565b60008082610a34816117eb565b610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612f47565b60405180910390fd5b610a7c846118b2565b610a8585611900565b9250925050915091565b600080610a9b8361194e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906130ee565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613180565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906131ec565b60405180910390fd5b42826fffffffffffffffffffffffffffffffff1611610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690613258565b60405180910390fd5b6000600854905060405180608001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001426fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff168152506007600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060086000815480929190610de990613278565b9190505550610df8858261198b565b610e2d333086610e0785610f0a565b73ffffffffffffffffffffffffffffffffffffffff16611ba8909392919063ffffffff16565b5050505050565b600081610e40816117eb565b610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690612f47565b60405180910390fd5b610e88836111c8565b610e9184611c31565b610e9b91906132c0565b915050919050565b600081610eaf816117eb565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f47565b60405180910390fd5b6006600084815260200190815260200160002054915050919050565b600081610f16816117eb565b610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612f47565b60405180910390fd5b610f5e83611c51565b915050919050565b606060018054610f7590612d14565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa190612d14565b8015610fee5780601f10610fc357610100808354040283529160200191610fee565b820191906000526020600020905b815481529060010190602001808311610fd157829003601f168201915b5050505050905090565b600081611004816117eb565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612f47565b60405180910390fd5b6006600084815260200190815260200160002054611060846111c8565b61106a91906132c0565b915050919050565b61108461107d61139c565b8383611c91565b5050565b61109961109361139c565b8361145d565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612edb565b60405180910390fd5b6110e484848484611dfd565b50505050565b60606110f582611351565b60006110ff611e59565b9050600081511161111f576040518060200160405280600081525061114a565b8061112984611e70565b60405160200161113a929190613330565b6040516020818303038152906040525b915050919050565b60008261115e816117eb565b61119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612f47565b60405180910390fd5b6111a684611900565b83106111bc576111b584611c31565b91506111c1565b600091505b5092915050565b60006111d48242611152565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061133a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061134a575061134982611f3e565b5b9050919050565b61135a816117eb565b611399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611390906130ee565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141783610a8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146983610a8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ab57506114aa81856111db565b5b806114e957508373ffffffffffffffffffffffffffffffffffffffff166114d18461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151282610a8f565b73ffffffffffffffffffffffffffffffffffffffff1614611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f906133c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613458565b60405180910390fd5b6115e48383836001611fa8565b8273ffffffffffffffffffffffffffffffffffffffff1661160482610a8f565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906133c6565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117e68383836001611fae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661180d8361194e565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6118ad8363a9059cbb60e01b848460405160240161184b929190613478565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b505050565b60006007600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006007600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f1906134ed565b60405180910390fd5b611a03816117eb565b15611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613559565b60405180910390fd5b611a51600083836001611fa8565b611a5a816117eb565b15611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613559565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba4600083836001611fae565b5050565b611c2b846323b872dd60e01b858585604051602401611bc993929190613579565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611fb4565b50505050565b600060076000838152602001908152602001600020600101549050919050565b60006007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf6906135fc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611df091906125d6565b60405180910390a3505050565b611e088484846114f2565b611e148484848461207b565b611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061368e565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060006001611e7f84612202565b01905060008167ffffffffffffffff811115611e9e57611e9d612ab7565b5b6040519080825280601f01601f191660200182016040528015611ed05781602001600182028036833780820191505090505b509050600082602001820190505b600115611f33578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2757611f266136ae565b5b04945060008503611ede575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b50505050565b6000612016826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123559092919063ffffffff16565b9050600081511115612076578080602001905181019061203691906136f2565b612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613791565b60405180910390fd5b5b505050565b600061209c8473ffffffffffffffffffffffffffffffffffffffff1661236d565b156121f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120c561139c565b8786866040518563ffffffff1660e01b81526004016120e79493929190613806565b6020604051808303816000875af192505050801561212357506040513d601f19601f820116820180604052508101906121209190613867565b60015b6121a5573d8060008114612153576040519150601f19603f3d011682016040523d82523d6000602084013e612158565b606091505b50600081510361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061368e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121fa565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612260577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612256576122556136ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061229d576d04ee2d6d415b85acef81000000008381612293576122926136ae565b5b0492506020810190505b662386f26fc1000083106122cc57662386f26fc1000083816122c2576122c16136ae565b5b0492506010810190505b6305f5e10083106122f5576305f5e10083816122eb576122ea6136ae565b5b0492506008810190505b612710831061231a5761271083816123105761230f6136ae565b5b0492506004810190505b6064831061233d5760648381612333576123326136ae565b5b0492506002810190505b600a831061234c576001810190505b80915050919050565b60606123648484600085612390565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060824710156123d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cc90613906565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fe9190613962565b60006040518083038185875af1925050503d806000811461243b576040519150601f19603f3d011682016040523d82523d6000602084013e612440565b606091505b50915091506124518783838761245d565b92505050949350505050565b606083156124bf5760008351036124b7576124778561236d565b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad906139c5565b60405180910390fd5b5b8290506124ca565b6124c983836124d2565b5b949350505050565b6000825111156124e55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251991906127e2565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361252c565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6000819050919050565b612604816125f1565b811461260f57600080fd5b50565b600081359050612621816125fb565b92915050565b60006020828403121561263d5761263c61252c565b5b600061264b84828501612612565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061269961269461268f84612654565b612674565b612654565b9050919050565b60006126ab8261267e565b9050919050565b60006126bd826126a0565b9050919050565b6126cd816126b2565b82525050565b6126dc816125f1565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612707816126e2565b82525050565b600060808201905061272260008301876126c4565b61272f60208301866126d3565b61273c60408301856126fe565b61274960608301846126fe565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278c578082015181840152602081019050612771565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b482612752565b6127be818561275d565b93506127ce81856020860161276e565b6127d781612798565b840191505092915050565b600060208201905081810360008301526127fc81846127a9565b905092915050565b600061280f82612654565b9050919050565b61281f81612804565b82525050565b600060208201905061283a6000830184612816565b92915050565b61284981612804565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b600080604083850312156128835761288261252c565b5b600061289185828601612857565b92505060206128a285828601612612565b9150509250929050565b6000806000606084860312156128c5576128c461252c565b5b60006128d386828701612857565b93505060206128e486828701612857565b92505060406128f586828701612612565b9150509250925092565b600060408201905061291460008301856126d3565b61292160208301846126d3565b9392505050565b60006020828403121561293e5761293d61252c565b5b600061294c84828501612857565b91505092915050565b600060208201905061296a60008301846126d3565b92915050565b612979816126e2565b811461298457600080fd5b50565b60008135905061299681612970565b92915050565b60006129a782612804565b9050919050565b6129b78161299c565b81146129c257600080fd5b50565b6000813590506129d4816129ae565b92915050565b600080600080608085870312156129f4576129f361252c565b5b6000612a0287828801612857565b9450506020612a1387828801612612565b9350506040612a2487828801612987565b9250506060612a35878288016129c5565b91505092959194509250565b612a4a816125bb565b8114612a5557600080fd5b50565b600081359050612a6781612a41565b92915050565b60008060408385031215612a8457612a8361252c565b5b6000612a9285828601612857565b9250506020612aa385828601612a58565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aef82612798565b810181811067ffffffffffffffff82111715612b0e57612b0d612ab7565b5b80604052505050565b6000612b21612522565b9050612b2d8282612ae6565b919050565b600067ffffffffffffffff821115612b4d57612b4c612ab7565b5b612b5682612798565b9050602081019050919050565b82818337600083830152505050565b6000612b85612b8084612b32565b612b17565b905082815260208101848484011115612ba157612ba0612ab2565b5b612bac848285612b63565b509392505050565b600082601f830112612bc957612bc8612aad565b5b8135612bd9848260208601612b72565b91505092915050565b60008060008060808587031215612bfc57612bfb61252c565b5b6000612c0a87828801612857565b9450506020612c1b87828801612857565b9350506040612c2c87828801612612565b925050606085013567ffffffffffffffff811115612c4d57612c4c612531565b5b612c5987828801612bb4565b91505092959194509250565b60008060408385031215612c7c57612c7b61252c565b5b6000612c8a85828601612612565b9250506020612c9b85828601612612565b9150509250929050565b60008060408385031215612cbc57612cbb61252c565b5b6000612cca85828601612857565b9250506020612cdb85828601612857565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d2c57607f821691505b602082108103612d3f57612d3e612ce5565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612da160218361275d565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612e33603d8361275d565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ec5602d8361275d565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f455243353732353a20696e76616c696420746f6b656e20494400000000000000600082015250565b6000612f3160198361275d565b9150612f3c82612efb565b602082019050919050565b60006020820190508181036000830152612f6081612f24565b9050919050565b7f4e6f74206f776e6572206f66204e465400000000000000000000000000000000600082015250565b6000612f9d60108361275d565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f455243353732353a204e6f2070656e64696e67207061796f7574000000000000600082015250565b6000613009601a8361275d565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613079826125f1565b9150613084836125f1565b925082820190508082111561309c5761309b61303f565b5b92915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006130d860188361275d565b91506130e3826130a2565b602082019050919050565b60006020820190508181036000830152613107816130cb565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061316a60298361275d565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f746f2063616e6e6f742062652061646472657373203000000000000000000000600082015250565b60006131d660168361275d565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b9050919050565b7f72656c65617365206d75737420626520696e2066757475726500000000000000600082015250565b600061324260198361275d565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b6000613283826125f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132b5576132b461303f565b5b600182019050919050565b60006132cb826125f1565b91506132d6836125f1565b92508282039050818111156132ee576132ed61303f565b5b92915050565b600081905092915050565b600061330a82612752565b61331481856132f4565b935061332481856020860161276e565b80840191505092915050565b600061333c82856132ff565b915061334882846132ff565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133b060258361275d565b91506133bb82613354565b604082019050919050565b600060208201905081810360008301526133df816133a3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061344260248361275d565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600060408201905061348d6000830185612816565b61349a60208301846126d3565b9392505050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006134d760208361275d565b91506134e2826134a1565b602082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613543601c8361275d565b915061354e8261350d565b602082019050919050565b6000602082019050818103600083015261357281613536565b9050919050565b600060608201905061358e6000830186612816565b61359b6020830185612816565b6135a860408301846126d3565b949350505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006135e660198361275d565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061367860328361275d565b91506136838261361c565b604082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000815190506136ec81612a41565b92915050565b6000602082840312156137085761370761252c565b5b6000613716848285016136dd565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061377b602a8361275d565b91506137868261371f565b604082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137d8826137b1565b6137e281856137bc565b93506137f281856020860161276e565b6137fb81612798565b840191505092915050565b600060808201905061381b6000830187612816565b6138286020830186612816565b61383560408301856126d3565b818103606083015261384781846137cd565b905095945050505050565b60008151905061386181612562565b92915050565b60006020828403121561387d5761387c61252c565b5b600061388b84828501613852565b91505092915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006138f060268361275d565b91506138fb82613894565b604082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b600081905092915050565b600061393c826137b1565b6139468185613926565b935061395681856020860161276e565b80840191505092915050565b600061396e8284613931565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006139af601d8361275d565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b905091905056fea2646970667358221220edbc947a635537fda1db652c421f31ad5f762a8c920ab72e4f2409561f0eca2c64736f6c63430008110033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/tasks/20230212-vesting-nft/index.ts b/tasks/20230212-vesting-nft/index.ts new file mode 100644 index 0000000..1411791 --- /dev/null +++ b/tasks/20230212-vesting-nft/index.ts @@ -0,0 +1,15 @@ +import { Task, TaskRunOptions } from '../../hardhat' +import { DeploymentInputs } from './input' + +export default async ( + task: Task, + { force, from }: TaskRunOptions = {} +): Promise => { + const input = task.input() as DeploymentInputs + // Setup and deploy LinearVestingNFT + const linearVestingArgs = [input.token0.name, input.token0.symbol] + await task.deployAndVerify('LinearVestingNFT', linearVestingArgs, from, force) + // Setup and deploy VestingNFT + const vestingArgs = [input.token1.name, input.token1.symbol] + await task.deployAndVerify('VestingNFT', vestingArgs, from, force) +} diff --git a/tasks/20230212-vesting-nft/input.ts b/tasks/20230212-vesting-nft/input.ts new file mode 100644 index 0000000..750cb55 --- /dev/null +++ b/tasks/20230212-vesting-nft/input.ts @@ -0,0 +1,35 @@ +import { Network } from '../../hardhat' + +export type DeploymentInputs = { + token0: { + name: string + symbol: string + } + token1: { + name: string + symbol: string + } +} + +const defaultInputs: DeploymentInputs = { + token0: { + name: 'LinearVestingNFT', + symbol: 'LV-2', + }, + token1: { + name: 'VestingNFT', + symbol: 'V-2', + }, +} + +const deploymentInputs: Record = { + mainnet: defaultInputs, + ropsten: defaultInputs, + bsc: defaultInputs, + bscTestnet: defaultInputs, + polygon: defaultInputs, + polygonTestnet: defaultInputs, + hardhat: defaultInputs, +} + +export default deploymentInputs diff --git a/tasks/20230212-vesting-nft/output/bscTestnet.json b/tasks/20230212-vesting-nft/output/bscTestnet.json new file mode 100644 index 0000000..424255a --- /dev/null +++ b/tasks/20230212-vesting-nft/output/bscTestnet.json @@ -0,0 +1,7 @@ +{ + "LinearVestingNFT": "0x45F37AE9cA43ab2f252eb6860C73b5572CD9F518", + "LinearVestingNFT-args": "0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000104c696e65617256657374696e674e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044c562d3200000000000000000000000000000000000000000000000000000000", + "timestamp": 1679596209318, + "VestingNFT": "0x57a1116538E56E95403320eAb2513cb81D5BE08E", + "VestingNFT-args": "00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a56657374696e674e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003562d320000000000000000000000000000000000000000000000000000000000" +} \ No newline at end of file diff --git a/tasks/20230212-vesting-nft/readme.md b/tasks/20230212-vesting-nft/readme.md new file mode 100644 index 0000000..60a3acc --- /dev/null +++ b/tasks/20230212-vesting-nft/readme.md @@ -0,0 +1,9 @@ +# Task 20230212-vesting-nft +Use this directory as a template for creating new tasks + +## Setup +- Update inputs per network in [input.ts](./input.ts) +- See outputs per network in [output/](./output/) + +## Usage +`npx hardhat deploy --id 20230212-vesting-nft --network ` \ No newline at end of file diff --git a/tasks/20xxxxxx-template/build-info/.gitkeep b/tasks/20xxxxxx-template/build-info/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tasks/20xxxxxx-template/contract-artifacts/.gitkeep b/tasks/20xxxxxx-template/contract-artifacts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tasks/20xxxxxx-template/index.ts b/tasks/20xxxxxx-template/index.ts new file mode 100644 index 0000000..d968e88 --- /dev/null +++ b/tasks/20xxxxxx-template/index.ts @@ -0,0 +1,12 @@ +import { Task, TaskRunOptions } from '../../hardhat' +import { DeploymentInputs } from './input' + +export default async ( + task: Task, + { force, from }: TaskRunOptions = {} +): Promise => { + const input = task.input() as DeploymentInputs + const args = [input.admin] + // TODO: Update contract name + await task.deployAndVerify('MyContract', args, from, force) +} diff --git a/tasks/20xxxxxx-template/input.ts b/tasks/20xxxxxx-template/input.ts new file mode 100644 index 0000000..88b24af --- /dev/null +++ b/tasks/20xxxxxx-template/input.ts @@ -0,0 +1,31 @@ +import { Network } from '../../hardhat' + +export type DeploymentInputs = { + admin: string +} + +const deploymentInputs: Record = { + mainnet: { + admin: '0x', + }, + ropsten: { + admin: '0x', + }, + bsc: { + admin: '0x', + }, + bscTestnet: { + admin: '0x', + }, + polygon: { + admin: '0x', + }, + polygonTestnet: { + admin: '0x', + }, + hardhat: { + admin: '0x', + }, +} + +export default deploymentInputs diff --git a/tasks/20xxxxxx-template/output/.gitkeep b/tasks/20xxxxxx-template/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tasks/20xxxxxx-template/readme.md b/tasks/20xxxxxx-template/readme.md new file mode 100644 index 0000000..a4055b3 --- /dev/null +++ b/tasks/20xxxxxx-template/readme.md @@ -0,0 +1,12 @@ +# Task 20xxxxxx-template +Use this directory as a template for creating new tasks + +## Setup +1. Copy the parent directory of this `readme.md` into the `tasks/` directory and replace `xxxxxx` with the current date and `-template` with a name for the task. +2. `yarn compile` all contracts +3. [artifacts/](../../artifacts/) will contain the needed JSON files in the [artifacts/build-info/](../../artifacts/build-info/) and [artifacts/contracts/](../../artifacts/contracts/) dirs. + * _`artifacts` are generated after compiling_ +4. Copy [artifacts/contracts/](../../artifacts/contracts/) needed files into the `./contract-artifacts` task directory +5. Copy and rename the proper [artifacts/build-info/](../../artifacts/build-info/) files into the `./build-info` task directory. + * _`build-info` files have unreadable names. Check the `contracts/.dbg` for the link to the proper `build-info` file._ +6. Update `index.ts` and `input.ts` in the task directory to finish configuring the task. \ No newline at end of file diff --git a/test/LinearVestingNFT.test.ts b/test/LinearVestingNFT.test.ts new file mode 100644 index 0000000..4eb55e0 --- /dev/null +++ b/test/LinearVestingNFT.test.ts @@ -0,0 +1,123 @@ +import { ethers } from 'hardhat' +import { Signer } from 'ethers' +import { expect } from 'chai' +import { time } from '@nomicfoundation/hardhat-network-helpers' +// typechain +import { + ERC20Mock__factory, + ERC20Mock, + LinearVestingNFT__factory, + LinearVestingNFT, +} from '../typechain-types' + +const testValues = { + payout: '1000000000', + lockTime: 60, + buffer: 10, + totalLock: 70, +} + +describe('LinearVestingNFT', function () { + let accounts: Signer[] + let linearVestingNFT: LinearVestingNFT + let mockToken: ERC20Mock + let receiverAccount: string + let unlockTime: number + + beforeEach(async function () { + const LinearVestingNFT = (await ethers.getContractFactory( + 'LinearVestingNFT' + )) as LinearVestingNFT__factory + linearVestingNFT = await LinearVestingNFT.deploy('LinearVestingNFT', 'TLV') + await linearVestingNFT.deployed() + + const ERC20Mock = (await ethers.getContractFactory( + 'ERC20Mock' + )) as ERC20Mock__factory + mockToken = await ERC20Mock.deploy( + '1000000000000000000000', + 18, + 'LockedToken', + 'LOCK' + ) + await mockToken.deployed() + await mockToken.approve(linearVestingNFT.address, '1000000000000000000000') + + accounts = await ethers.getSigners() + receiverAccount = await accounts[1].getAddress() + unlockTime = await createVestingNft( + linearVestingNFT, + receiverAccount, + mockToken + ) + }) + + it('Returns a valid vested payout', async function () { + // TODO: More extensive testing of linear vesting functionality + const totalPayout = await linearVestingNFT.vestedPayoutAtTime(0, unlockTime) + expect(await linearVestingNFT.vestedPayout(0)).to.equal(0) + await time.increase(testValues.totalLock) + expect(await linearVestingNFT.vestedPayout(0)).to.equal(totalPayout) + }) + + it('Reverts when creating to account 0', async function () { + const latestBlock = await ethers.provider.getBlock('latest') + await expect( + linearVestingNFT.create( + '0x0000000000000000000000000000000000000000', + testValues.payout, + latestBlock.timestamp + testValues.buffer, + testValues.lockTime, + 0, + mockToken.address + ) + ).to.revertedWith('to cannot be address 0') + }) + + it('Reverts when creating to past start date 0', async function () { + await expect( + linearVestingNFT.create( + receiverAccount, + testValues.payout, + 0, + testValues.lockTime, + 0, + mockToken.address + ) + ).to.revertedWith('startTime cannot be on the past') + }) + + it('Reverts when duration is less than cliff', async function () { + const latestBlock = await ethers.provider.getBlock('latest') + await expect( + linearVestingNFT.create( + receiverAccount, + testValues.payout, + latestBlock.timestamp + testValues.buffer, + testValues.lockTime, + 100, + mockToken.address + ) + ).to.revertedWith('duration needs to be more than cliff') + }) +}) + +async function createVestingNft( + linearVestingNFT: LinearVestingNFT, + receiverAccount: string, + mockToken: ERC20Mock +) { + const latestBlock = await ethers.provider.getBlock('latest') + const unlockTime = + latestBlock.timestamp + testValues.lockTime + testValues.buffer + const txReceipt = await linearVestingNFT.create( + receiverAccount, + testValues.payout, + latestBlock.timestamp + testValues.buffer, + testValues.lockTime, + 0, + mockToken.address + ) + await txReceipt.wait() + return unlockTime +} diff --git a/test/VestingNFT.test.ts b/test/VestingNFT.test.ts new file mode 100644 index 0000000..05567a3 --- /dev/null +++ b/test/VestingNFT.test.ts @@ -0,0 +1,341 @@ +import { ethers } from 'hardhat' +import { BigNumber, Signer } from 'ethers' +import { expect } from 'chai' +import { time } from '@nomicfoundation/hardhat-network-helpers' +// typechain +import { ERC20Mock, VestingNFT } from '../typechain-types' +import { IERC5725_InterfaceId } from '../src/erc5725' + +const IERC721_InterfaceId = '0x80ac58cd' + +const testValues = { + payout: '1000000000', + payoutDecimals: 18, + lockTime: 60, +} + +describe('VestingNFT', function () { + let accounts: Signer[] + let vestingNFT: VestingNFT + let mockToken: ERC20Mock + let receiverAccount: string + let operatorAccount: string + let transferToAccount: string + let unlockTime: number + let invalidTokenID = 1337 + + beforeEach(async function () { + const VestingNFT = await ethers.getContractFactory('VestingNFT') + vestingNFT = await VestingNFT.deploy('VestingNFT', 'TLV') + await vestingNFT.deployed() + + const ERC20Mock = await ethers.getContractFactory('ERC20Mock') + mockToken = await ERC20Mock.deploy( + '1000000000000000000000', + testValues.payoutDecimals, + 'LockedToken', + 'LOCK' + ) + await mockToken.deployed() + await mockToken.approve(vestingNFT.address, '1000000000000000000000') + + accounts = await ethers.getSigners() + receiverAccount = await accounts[1].getAddress() + operatorAccount = await accounts[2].getAddress() + transferToAccount = await accounts[3].getAddress() + unlockTime = await createVestingNft( + vestingNFT, + receiverAccount, + mockToken, + 5 + ) + }) + + /** + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified + * // Solidity export interface id: + * bytes4 public constant IID_TEST = type(IERC5725).interfaceId; + * // Pull out the interfaceId in tests + * const interfaceId = await vestingNFT.IID_TEST(); + */ + it('Supports ERC721 and IERC5725 interfaces', async function () { + // IERC721 + expect(await vestingNFT.supportsInterface(IERC721_InterfaceId)).to.equal( + true + ) + // Vesting NFT Interface IERC5725 + expect(await vestingNFT.supportsInterface(IERC5725_InterfaceId)).to.equal( + true + ) + }) + + it('Returns a valid vested payout', async function () { + const totalPayout = await vestingNFT.vestedPayoutAtTime(0, unlockTime) + expect(await vestingNFT.vestedPayout(0)).to.equal(0) + await time.increase(testValues.lockTime) + expect(await vestingNFT.vestedPayout(0)).to.equal(totalPayout) + }) + + it('Reverts with invalid ID', async function () { + await expect(vestingNFT.vestedPayout(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + await expect( + vestingNFT.vestedPayoutAtTime(invalidTokenID, unlockTime) + ).to.revertedWith('ERC5725: invalid token ID') + await expect(vestingNFT.vestingPayout(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + await expect(vestingNFT.claimablePayout(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + await expect(vestingNFT.vestingPeriod(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + await expect(vestingNFT.payoutToken(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + await expect(vestingNFT.claim(invalidTokenID)).to.revertedWith( + 'ERC5725: invalid token ID' + ) + }) + + it('Returns a valid pending payout', async function () { + expect(await vestingNFT.vestingPayout(0)).to.equal(testValues.payout) + }) + + it('Returns a valid releasable payout', async function () { + const totalPayout = await vestingNFT.vestedPayoutAtTime(0, unlockTime) + expect(await vestingNFT.claimablePayout(0)).to.equal(0) + await time.increase(testValues.lockTime) + expect(await vestingNFT.claimablePayout(0)).to.equal(totalPayout) + }) + + it('Returns a valid vesting period', async function () { + const vestingPeriod = await vestingNFT.vestingPeriod(0) + expect(vestingPeriod.vestingEnd).to.equal(unlockTime) + }) + + it('Returns a valid payout token', async function () { + expect(await vestingNFT.payoutToken(0)).to.equal(mockToken.address) + }) + + it('Is able to claim', async function () { + const connectedVestingNft = vestingNFT.connect(accounts[1]) + expect(await vestingNFT.claimedPayout(0)).to.equal(0) + await time.increase(testValues.lockTime) + const txReceipt = await connectedVestingNft.claim(0) + await txReceipt.wait() + expect(await mockToken.balanceOf(receiverAccount)).to.equal( + testValues.payout + ) + expect(await vestingNFT.claimedPayout(0)).to.equal(testValues.payout) + }) + + it('Reverts claim when payout is 0', async function () { + const connectedVestingNft = vestingNFT.connect(accounts[1]) + await expect(connectedVestingNft.claim(0)).to.revertedWith( + 'ERC5725: No pending payout' + ) + }) + + it('Reverts claim when payout is not from owner or account with permission', async function () { + const connectedVestingNft = vestingNFT.connect(accounts[2]) + await expect(connectedVestingNft.claim(0)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + }) + + it('Reverts when creating to account 0', async function () { + await expect( + vestingNFT.create( + '0x0000000000000000000000000000000000000000', + testValues.payout, + unlockTime, + mockToken.address + ) + ).to.revertedWith('to cannot be address 0') + }) + + it('Revert when setting an setClaimApproval for a tokenId you do not own', async function () { + // Account without permission tries to call setClaimApproval(self,tokenId) + const connectedVestingNft = vestingNFT.connect(accounts[2]) + + await expect( + connectedVestingNft.setClaimApproval(operatorAccount, true, 1) + ).to.revertedWith('ERC5725: not owner of tokenId') + }) + + it("Should allow a designated operator to manage specific tokenId's owned by the owner through _tokenIdApprovals, until such rights are revoked", async function () { + // Give permission for SPECIFIC tokenId to be managed + const ownersConnectedVestingNft = vestingNFT.connect(accounts[1]) + const operatorsConnectedVestingNft = vestingNFT.connect(accounts[2]) + let approveToken1 = ownersConnectedVestingNft.setClaimApproval( + operatorAccount, + true, + 1 + ) + await expect(approveToken1).to.be.fulfilled + await expect(approveToken1) + .to.emit(ownersConnectedVestingNft, 'ClaimApproval') + .withArgs(receiverAccount, operatorAccount, 1, true) + + // Elapse time, operator can claim + await time.increase(testValues.lockTime) + await expect(operatorsConnectedVestingNft.claim(1)).to.be.fulfilled + + // Owner revokes permission for SPECIFIC tokenId + let unapprovedToken1 = ownersConnectedVestingNft.setClaimApproval( + operatorAccount, + false, + 1 + ) + await expect(unapprovedToken1).to.be.fulfilled + await expect(unapprovedToken1) + .to.emit(ownersConnectedVestingNft, 'ClaimApproval') + .withArgs(receiverAccount, operatorAccount, 1, false) + + // Elapse time, operator can't claim for that specific tokenId because no permissions + await time.increase(testValues.lockTime) + await expect(operatorsConnectedVestingNft.claim(0)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + }) + + it("Should allow a designated operator to manage all tokenId's owned by the owner through _operatorApprovals, until such rights are revoked", async function () { + // Give permission for ALL tokenId to be managed + const ownersConnectedVestingNft = vestingNFT.connect(accounts[1]) + const operatorsConnectedVestingNft = vestingNFT.connect(accounts[2]) + let approveGlobalOperator = + ownersConnectedVestingNft.setClaimApprovalForAll(operatorAccount, true) + await expect(approveGlobalOperator).to.be.fulfilled + await expect(approveGlobalOperator) + .to.emit(ownersConnectedVestingNft, 'ClaimApprovalForAll') + .withArgs(receiverAccount, operatorAccount, true) + + // Elapse time, operator can claim + await time.increase(testValues.lockTime) + await expect(operatorsConnectedVestingNft.claim(1)).to.be.fulfilled + await expect(operatorsConnectedVestingNft.claim(2)).to.be.fulfilled + await expect(operatorsConnectedVestingNft.claim(3)).to.be.fulfilled + + // Owner revokes permission for SPECIFIC tokenId + let unapprovedGlobalOperator = + ownersConnectedVestingNft.setClaimApprovalForAll(operatorAccount, false) + await expect(unapprovedGlobalOperator).to.be.fulfilled + await expect(unapprovedGlobalOperator) + .to.emit(ownersConnectedVestingNft, 'ClaimApprovalForAll') + .withArgs(receiverAccount, operatorAccount, false) + + // Elapse time, operator can't claim for that specific tokenId because no permissions + await time.increase(testValues.lockTime) + await expect(operatorsConnectedVestingNft.claim(1)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + await expect(operatorsConnectedVestingNft.claim(2)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + await expect(operatorsConnectedVestingNft.claim(3)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + }) + + it("Should revoke an operator's management rights from _tokenIdApprovals for a specific tokenId when the token is transferred", async function () { + // Give permission for SPECIFIC tokenId to be managed + const ownersConnectedVestingNft = vestingNFT.connect(accounts[1]) + const operatorsConnectedVestingNft = vestingNFT.connect(accounts[2]) + let approveToken1 = ownersConnectedVestingNft.setClaimApproval( + operatorAccount, + true, + 1 + ) + await expect(approveToken1).to.be.fulfilled + + // permissions added + expect(await ownersConnectedVestingNft.getClaimApproved(1)).to.equal( + operatorAccount + ) + + // Transfer tokenId 1 to other address which removes the _tokenIdApprovals permission but we keep the global OP status + const transferNft = ownersConnectedVestingNft.transferFrom( + receiverAccount, + transferToAccount, + 1 + ) + await expect(transferNft).to.be.fulfilled + + // permissions removed + expect(await ownersConnectedVestingNft.getClaimApproved(1)).to.equal( + '0x0000000000000000000000000000000000000000' + ) + + // Operator can't claim for tokenId 1 permissions removed + await expect(operatorsConnectedVestingNft.claim(1)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + }) + + it("Should keep an operator's management rights to _operatorApprovals for all tokenIds when one or more are transfered", async function () { + // Give permission for ALL tokenId to be managed + const ownersConnectedVestingNft = vestingNFT.connect(accounts[1]) + const operatorsConnectedVestingNft = vestingNFT.connect(accounts[2]) + let approveGlobalOperator = + ownersConnectedVestingNft.setClaimApprovalForAll(operatorAccount, true) + await expect(approveGlobalOperator).to.be.fulfilled + + // permissions added + expect( + await ownersConnectedVestingNft.isClaimApprovedForAll( + receiverAccount, + operatorAccount + ) + ).to.equal(true) + + // Transfer tokenId 1 to other address which removes the _tokenIdApprovals permission but we keep the global OP status + const transferNft = ownersConnectedVestingNft.transferFrom( + receiverAccount, + transferToAccount, + 1 + ) + await expect(transferNft).to.be.fulfilled + + // permissions kept + expect( + await ownersConnectedVestingNft.isClaimApprovedForAll( + receiverAccount, + operatorAccount + ) + ).to.equal(true) + + // Operator can't claim for tokenId 1 they don't own it anymore + await expect(operatorsConnectedVestingNft.claim(1)).to.revertedWith( + 'ERC5725: not owner or operator' + ) + // Operator can claim for other tokenIds + await time.increase(testValues.lockTime) + await expect(operatorsConnectedVestingNft.claim(2)).to.be.fulfilled + await expect(operatorsConnectedVestingNft.claim(3)).to.be.fulfilled + }) +}) + +async function createVestingNft( + vestingNFT: VestingNFT, + receiverAccount: string, + mockToken: ERC20Mock, + batchMintAmount: number = 1 +) { + const latestBlock = await ethers.provider.getBlock('latest') + const unlockTime = latestBlock.timestamp + testValues.lockTime + + for (let i = 0; i <= batchMintAmount; i++) { + const txReceipt = await vestingNFT.create( + receiverAccount, + testValues.payout, + unlockTime, + mockToken.address + ) + await txReceipt.wait() + } + + return unlockTime +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ab488c4 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "es2020", + "outDir": "./dist", + "module": "commonjs", + "esModuleInterop": true, + "allowJs": true, + "declaration": true, + "resolveJsonModule": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + }, + "include": [ + "index.ts", + "artifacts/**/*.json", + "src", + "typechain-types", + "test", + "hardhat", + "hardhat.config.ts", + ], + // The intent here is to only include src/ and Smart Contract artifacts and types. + "exclude": [ + "dist", + "tasks", + "scripts", + "prettier.config.js", + "solhint.config.js" + ] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..51a7380 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6919 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@chainsafe/as-sha256@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" + integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== + +"@chainsafe/persistent-merkle-tree@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" + integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/persistent-merkle-tree@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" + integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/ssz@^0.10.0": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" + integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.5.0" + +"@chainsafe/ssz@^0.9.2": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" + integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.4.2" + case "^1.6.3" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@erc-5725/interfaces@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@erc-5725/interfaces/-/interfaces-1.1.2.tgz#caf6bd1295a341c875b530b8feda005623e0ae5f" + integrity sha512-Rd7PyPqrhPFKjZz+2ar3uJaQznPFdCSWBt5XJZ5/FqfeZdPm6BaCzYUxgmSrLlM8X/M87E2K5nI7RWis1piqCQ== + dependencies: + "@openzeppelin/contracts" "^5.0.0" + +"@ethereumjs/common@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" + integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.1" + +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/tx@3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== + dependencies: + "@ethereumjs/common" "^2.5.0" + ethereumjs-util "^7.1.2" + +"@ethereumjs/tx@^3.3.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + +"@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.7", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.4.7", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== + dependencies: + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@noble/curves@1.1.0", "@noble/curves@~1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== + dependencies: + "@noble/hashes" "1.3.1" + +"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== + +"@noble/hashes@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + +"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@nomicfoundation/ethereumjs-block@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d" + integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + +"@nomicfoundation/ethereumjs-blockchain@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726" + integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-ethash" "3.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + level "^8.0.0" + lru-cache "^5.1.1" + memory-level "^1.0.0" + +"@nomicfoundation/ethereumjs-common@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0" + integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.1" + crc-32 "^1.2.0" + +"@nomicfoundation/ethereumjs-ethash@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41" + integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + bigint-crypto-utils "^3.0.23" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-evm@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1" + integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ== + dependencies: + "@ethersproject/providers" "^5.7.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/ethereumjs-rlp@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28" + integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ== + +"@nomicfoundation/ethereumjs-statemanager@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935" + integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + js-sdsl "^4.1.4" + +"@nomicfoundation/ethereumjs-trie@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717" + integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@types/readable-stream" "^2.3.13" + ethereum-cryptography "0.1.3" + readable-stream "^3.6.0" + +"@nomicfoundation/ethereumjs-tx@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d" + integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w== + dependencies: + "@chainsafe/ssz" "^0.9.2" + "@ethersproject/providers" "^5.7.2" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-util@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89" + integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA== + dependencies: + "@chainsafe/ssz" "^0.10.0" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-vm@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f" + integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/hardhat-chai-matchers@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz#72a2e312e1504ee5dd73fe302932736432ba96bc" + integrity sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@types/chai-as-promised" "^7.1.3" + chai-as-promised "^7.1.1" + deep-eql "^4.0.1" + ordinal "^1.0.3" + +"@nomicfoundation/hardhat-network-helpers@^1.0.0": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz#e4fe1be93e8a65508c46d73c41fa26c7e9f84931" + integrity sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q== + dependencies: + ethereumjs-util "^7.1.4" + +"@nomicfoundation/hardhat-toolbox@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-1.0.2.tgz#342b79e19c456a56d8e76bc2e9cc8474cbcfc774" + integrity sha512-8CEgWSKUK2aMit+76Sez8n7UB0Ze1lwT+LcWxj4EFP30lQWOwOws048t6MTPfThH0BlSWjC6hJRr0LncIkc1Sw== + +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" + integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" + integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" + integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" + integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" + integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" + integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" + integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" + integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" + integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== + +"@nomicfoundation/solidity-analyzer@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" + +"@nomiclabs/hardhat-ethers@^2.0.0": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== + +"@nomiclabs/hardhat-etherscan@^2.1.6": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.8.tgz#e206275e96962cd15e5ba9148b44388bc922d8c2" + integrity sha512-0+rj0SsZotVOcTLyDOxnOc3Gulo8upo0rsw/h+gBPcmtj91YqYJNhdARHoBxOhhE8z+5IUQPx+Dii04lXT14PA== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@ethersproject/address" "^5.0.2" + cbor "^5.0.2" + debug "^4.1.1" + fs-extra "^7.0.1" + node-fetch "^2.6.0" + semver "^6.3.0" + +"@openzeppelin/contracts-upgradeable@^4.7.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz#ff17a80fb945f5102571f8efecb5ce5915cc4811" + integrity sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A== + +"@openzeppelin/contracts@^4.7.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" + integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== + +"@openzeppelin/contracts@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-5.0.0.tgz#ee0e4b4564f101a5c4ee398cd4d73c0bd92b289c" + integrity sha512-bv2sdS6LKqVVMLI5+zqnNrNU/CA+6z6CmwFXm/MzmOPBRSO5reEJN7z0Gbzvs0/bv/MZZXNklubpwy3v2+azsw== + +"@scure/base@~1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.2.tgz#ff0cf51874aaf176490c9cb46e4df807a2e581d2" + integrity sha512-sSCrnIdaUZQHhBxZThMuk7Wm1TWzMD3uJNdGgx3JS23xSqevu0tAOsg8k66nL3R2NwQe65AI9GgqpPOgZys/eA== + +"@scure/bip32@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== + dependencies: + "@noble/hashes" "~1.2.0" + "@noble/secp256k1" "~1.7.0" + "@scure/base" "~1.1.0" + +"@scure/bip32@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" + integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== + dependencies: + "@noble/curves" "~1.1.0" + "@noble/hashes" "~1.3.1" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== + dependencies: + "@noble/hashes" "~1.2.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + +"@sentry/core@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/hub@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== + dependencies: + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/minimal@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sentry/node@^5.18.1": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== + dependencies: + "@sentry/core" "5.30.0" + "@sentry/hub" "5.30.0" + "@sentry/tracing" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/tracing@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/types@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== + +"@sentry/utils@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== + dependencies: + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@solidity-parser/parser@^0.14.0": + version "0.14.5" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" + integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== + dependencies: + antlr4ts "^0.5.0-alpha.4" + +"@solidity-parser/parser@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.1.tgz#f7c8a686974e1536da0105466c4db6727311253c" + integrity sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw== + dependencies: + antlr4ts "^0.5.0-alpha.4" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@truffle/error@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.1.1.tgz#e52026ac8ca7180d83443dca73c03e07ace2a301" + integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== + +"@truffle/interface-adapter@^0.5.25": + version "0.5.35" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.35.tgz#f0eb1c4a2803190ca249143f545029a8b641fe96" + integrity sha512-B5gtJnvsum5j2do393n0UfCT8MklrlAZxuqvEFBeMM9UKnreYct0/D368FVMlZwWo1N50HgGeZ0hlpSJqR/nvg== + dependencies: + bn.js "^5.1.3" + ethers "^4.0.32" + web3 "1.10.0" + +"@truffle/provider@^0.2.24": + version "0.2.64" + resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.2.64.tgz#7dd55117307fd019dcf81d08db5dc2bc5728f51c" + integrity sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw== + dependencies: + "@truffle/error" "^0.1.1" + "@truffle/interface-adapter" "^0.5.25" + debug "^4.3.1" + web3 "1.7.4" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@typechain/ethers-v5@^10.1.0": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" + integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + +"@typechain/hardhat@^6.1.2": + version "6.1.6" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.6.tgz#1a749eb35e5054c80df531cf440819cb347c62ea" + integrity sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA== + dependencies: + fs-extra "^9.1.0" + +"@types/bn.js@^4.11.3": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/chai-as-promised@^7.1.3": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255" + integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.2.0": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + +"@types/concat-stream@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + +"@types/form-data@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mocha@^9.1.0": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" + integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== + +"@types/node-fetch@^2.6.2": + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*", "@types/node@>=12.0.0": + version "20.5.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" + integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== + +"@types/node@^10.0.3": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.6": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^8.0.0": + version "8.10.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/prettier@^2.1.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/qs@^6.2.31": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/readable-stream@^2.3.13": + version "2.3.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== + +abortcontroller-polyfill@^1.7.3: + version "1.7.5" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" + integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== + +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +address@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adm-zip@^0.4.16: + version "0.4.16" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.3, ajv@^6.12.6: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +antlr4@^4.11.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.0.tgz#25c0b17f0d9216de114303d38bafd6f181d5447f" + integrity sha512-zooUbt+UscjnWyOrsuY/tVFL4rwrAGwOivpQmvmUDE22hy/lUA467Rc1rcixyRwcRUIXFYBwv7+dClDSHdmmew== + +antlr4ts@^0.5.0-alpha.4: + version "0.5.0-alpha.4" + resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== + +anymatch@~3.1.1, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array.prototype.findlast@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.2.tgz#134ef6b7215f131a8884fafe6af46846a032c518" + integrity sha512-p1YDNPNqA+P6cPX9ATsxg7DKir7gOmJ+jh5dEP3LlumMNYVC1F2Jgnyh6oI3n/qD9FeIkqR2jXfd73G68ImYUQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +ast-parents@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" + integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@1.x: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bigint-crypto-utils@^3.0.23: + version "3.3.0" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" + integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== + +bignumber.js@^9.0.0, bignumber.js@^9.0.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.16.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" + integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== + dependencies: + node-gyp-build "^4.3.0" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +case@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" + integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== + +caseless@^0.12.0, caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + +cbor@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai@^4.2.0: + version "4.3.8" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" + integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^4.1.2" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +"charenc@>= 0.0.1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.2.0" + optionalDependencies: + fsevents "~2.1.1" + +chokidar@3.5.3, chokidar@^3.4.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +classic-level@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "^2.2.2" + node-gyp-build "^4.3.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-table3@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0, colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + +commander@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.6.0, concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookiejar@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +"crypt@>= 0.0.1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +death@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-eql@^4.0.1, deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-port@^1.3.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" + integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== + dependencies: + address "^1.0.1" + debug "4" + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +dotenv@^16.0.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" + integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.1" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.10" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.2.8: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-gas-reporter@^0.2.25: + version "0.2.25" + resolved "https://registry.yarnpkg.com/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz#546dfa946c1acee93cb1a94c2a1162292d6ff566" + integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== + dependencies: + "@ethersproject/abi" "^5.0.0-beta.146" + "@solidity-parser/parser" "^0.14.0" + cli-table3 "^0.5.0" + colors "1.4.0" + ethereum-cryptography "^1.0.3" + ethers "^4.0.40" + fs-readdir-recursive "^1.1.0" + lodash "^4.17.14" + markdown-table "^1.1.3" + mocha "^7.1.1" + req-cwd "^2.0.0" + request "^2.88.0" + request-promise-native "^1.0.5" + sha1 "^1.1.1" + sync-request "^6.0.0" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereum-cryptography@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== + dependencies: + "@noble/hashes" "1.2.0" + "@noble/secp256k1" "1.7.1" + "@scure/bip32" "1.1.5" + "@scure/bip39" "1.1.1" + +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" + integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== + dependencies: + "@noble/curves" "1.1.0" + "@noble/hashes" "1.3.1" + "@scure/bip32" "1.3.1" + "@scure/bip39" "1.2.1" + +ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethers@^4.0.32, ethers@^4.0.40: + version "4.0.49" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== + dependencies: + aes-js "3.0.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +ethers@^5.4.7, ethers@^5.7.1: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +ethjs-util@0.1.6, ethjs-util@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +express@^4.14.0: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2, fast-diff@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.0.3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +flat@^4.1.0, flat@^5.0.1, flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.12.1: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fp-ts@1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== + +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0, fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fs@^0.0.1-security: + version "0.0.1-security" + resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w== + +fsevents@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +ghost-testrpc@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" + integrity sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ== + dependencies: + chalk "^2.4.2" + node-emoji "^1.10.0" + +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@12.1.0, got@9.6.0, got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +handlebars@^4.0.1, handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hardhat-gas-reporter@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz#9a2afb354bc3b6346aab55b1c02ca556d0e16450" + integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== + dependencies: + array-uniq "1.0.3" + eth-gas-reporter "^0.2.25" + sha1 "^1.1.1" + +hardhat@^2.10.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.17.1.tgz#4b6c8c8f624fd23d9f40185a4af24815d05a486a" + integrity sha512-1PxRkfjhEzXs/wDxI5YgzYBxNmvzifBTjYzuopwel+vXpAhCudplusJthN5eig0FTs4qbi828DBIITEDh8x9LA== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-vm" "7.0.1" + "@nomicfoundation/solidity-analyzer" "^0.1.0" + "@sentry/node" "^5.18.1" + "@types/bn.js" "^5.1.0" + "@types/lru-cache" "^5.1.0" + adm-zip "^0.4.16" + aggregate-error "^3.0.0" + ansi-escapes "^4.3.0" + chalk "^2.4.2" + chokidar "^3.4.0" + ci-info "^2.0.0" + debug "^4.1.1" + enquirer "^2.3.0" + env-paths "^2.2.0" + ethereum-cryptography "^1.0.3" + ethereumjs-abi "^0.6.8" + find-up "^2.1.0" + fp-ts "1.19.3" + fs-extra "^7.0.1" + glob "7.2.0" + immutable "^4.0.0-rc.12" + io-ts "1.10.4" + keccak "^3.0.2" + lodash "^4.17.11" + mnemonist "^0.38.0" + mocha "^10.0.0" + p-map "^4.0.0" + raw-body "^2.4.1" + resolve "1.17.0" + semver "^6.3.0" + solc "0.7.3" + source-map-support "^0.5.13" + stacktrace-parser "^0.1.10" + tsort "0.0.1" + undici "^5.14.0" + uuid "^8.3.2" + ws "^7.4.6" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +http-basic@^8.1.1: + version "8.1.3" + resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== + dependencies: + caseless "^0.12.0" + concat-stream "^1.6.2" + http-response-object "^3.0.1" + parse-cache-control "^1.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== + +http-response-object@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" + integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== + dependencies: + "@types/node" "^10.0.3" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.1.1, ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immutable@^4.0.0-rc.12: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +io-ts@1.10.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== + dependencies: + fp-ts "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +js-sdsl@^4.1.4: + version "4.4.2" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" + integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== + +js-sha3@0.5.7, js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@3.x: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonschema@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keccak@^3.0.0, keccak@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" + integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +keyv@^4.0.0: + version "4.5.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== + optionalDependencies: + graceful-fs "^4.1.9" + +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + +level-transcoder@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== + dependencies: + buffer "^6.0.3" + module-error "^1.0.1" + +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + dependencies: + browser-level "^1.0.1" + classic-level "^1.2.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +markdown-table@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== + +mcl-wasm@^0.7.1: + version "0.7.9" + resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== + dependencies: + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +"minimatch@2 || 3", minimatch@3.0.4, minimatch@5.0.1, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^5.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== + dependencies: + mkdirp "*" + +mkdirp@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mkdirp@0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@0.5.x, mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mnemonist@^0.38.0: + version "0.38.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== + dependencies: + obliterator "^2.0.0" + +mocha@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +mocha@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604" + integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + chokidar "3.3.0" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "3.0.0" + minimatch "3.0.4" + mkdirp "0.5.5" + ms "2.1.1" + node-environment-flags "1.0.6" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +module-error@^1.0.1, module-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +napi-macros@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-environment-flags@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-fetch@^2.6.0, node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" + integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== + +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + +nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-keys@^1.0.11, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" + +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== + dependencies: + http-https "^1.0.0" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ordinal@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" + integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-cache-control@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.17, pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-solidity@^1.0.0-beta.24: + version "1.1.3" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba" + integrity sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg== + dependencies: + "@solidity-parser/parser" "^0.16.0" + semver "^7.3.8" + solidity-comments-extractor "^0.0.7" + +prettier@^2.3.1, prettier@^2.7.1, prettier@^2.8.3: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +promise@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.4.0: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +queue-microtask@^1.2.2, queue-microtask@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2, raw-body@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.2.2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== + dependencies: + picomatch "^2.0.4" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + +regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +req-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-2.0.0.tgz#d4082b4d44598036640fb73ddea01ed53db49ebc" + integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== + dependencies: + req-from "^2.0.0" + +req-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/req-from/-/req-from-2.0.0.tgz#d74188e47f93796f4aa71df6ee35ae689f3e0e70" + integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== + dependencies: + resolve-from "^3.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.79.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.0, require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.6: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.2.8: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.3, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rustbn.js@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== + +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sc-istanbul@^0.4.5: + version "0.4.6" + resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.6.tgz#cf6784355ff2076f92d70d59047d71c13703e839" + integrity sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g== + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver@^5.5.0, semver@^5.7.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.4, semver@^7.3.8, semver@^7.5.2: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha1@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sha1/-/sha1-1.1.1.tgz#addaa7a93168f393f19eb2b15091618e2700f848" + integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== + dependencies: + charenc ">= 0.0.1" + crypt ">= 0.0.1" + +shelljs@^0.8.3: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^2.7.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +solc@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== + dependencies: + command-exists "^1.2.8" + commander "3.0.2" + follow-redirects "^1.12.1" + fs-extra "^0.30.0" + js-sha3 "0.8.0" + memorystream "^0.3.1" + require-from-string "^2.0.0" + semver "^5.5.0" + tmp "0.0.33" + +solhint-plugin-prettier@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz#e3b22800ba435cd640a9eca805a7f8bc3e3e6a6b" + integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== + dependencies: + prettier-linter-helpers "^1.0.0" + +solhint@^3.3.7: + version "3.6.2" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" + integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== + dependencies: + "@solidity-parser/parser" "^0.16.0" + ajv "^6.12.6" + antlr4 "^4.11.0" + ast-parents "^0.0.1" + chalk "^4.1.2" + commander "^10.0.0" + cosmiconfig "^8.0.0" + fast-diff "^1.2.0" + glob "^8.0.3" + ignore "^5.2.4" + js-yaml "^4.1.0" + lodash "^4.17.21" + pluralize "^8.0.0" + semver "^7.5.2" + strip-ansi "^6.0.1" + table "^6.8.1" + text-table "^0.2.0" + optionalDependencies: + prettier "^2.8.3" + +solidity-ast@^0.4.31: + version "0.4.52" + resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.52.tgz#9f1a9abc7e5ba28bbf91146ecd07aec7e70f3c85" + integrity sha512-iOya9BSiB9jhM8Vf40n8lGELGzwrUc57rl5BhfNtJ5cvAaMvRcNlHeAMNvqJJyjoUnczqRbHqdivEqK89du3Cw== + dependencies: + array.prototype.findlast "^1.2.2" + +solidity-comments-extractor@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" + integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== + +solidity-coverage@^0.7.21: + version "0.7.22" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.22.tgz#168f414be4c0f5303addcf3ab9714cf64f72c080" + integrity sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw== + dependencies: + "@solidity-parser/parser" "^0.14.0" + "@truffle/provider" "^0.2.24" + chalk "^2.4.2" + death "^1.1.0" + detect-port "^1.3.0" + fs-extra "^8.1.0" + ghost-testrpc "^0.0.2" + global-modules "^2.0.0" + globby "^10.0.1" + jsonschema "^1.2.4" + lodash "^4.17.15" + node-emoji "^1.10.0" + pify "^4.0.1" + recursive-readdir "^2.2.2" + sc-istanbul "^0.4.5" + semver "^7.3.4" + shelljs "^0.8.3" + web3-utils "^1.3.0" + +solidity-docgen@0.6.0-beta.26: + version "0.6.0-beta.26" + resolved "https://registry.yarnpkg.com/solidity-docgen/-/solidity-docgen-0.6.0-beta.26.tgz#0a7876ded59f2c1c3611281e97d8eae7bf78519f" + integrity sha512-Hgg9S+iP3BjUJ/g+jBPRgv3hzy8VV8QygGW1YY/Ar8DFIt9ZrCmVDqek2JObpcQODuk+qzRuh8SOwWHMNC9mVg== + dependencies: + handlebars "^4.7.7" + solidity-ast "^0.4.31" + +source-map-support@^0.5.13: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== + dependencies: + amdefine ">=0.0.4" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== + +"string-width@^1.0.2 || 2", string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +swarm-js@^0.1.40: + version "0.1.42" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^11.8.5" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + +sync-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== + dependencies: + http-response-object "^3.0.1" + sync-rpc "^1.2.1" + then-request "^6.0.0" + +sync-rpc@^1.2.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" + +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + +table@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +then-request@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== + dependencies: + "@types/concat-stream" "^1.6.0" + "@types/form-data" "0.0.33" + "@types/node" "^8.0.0" + "@types/qs" "^6.2.31" + caseless "~0.12.0" + concat-stream "^1.6.0" + form-data "^2.2.0" + http-basic "^8.1.1" + http-response-object "^3.0.1" + promise "^8.0.0" + qs "^6.4.0" + +timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + +tmp@0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-command-line-args@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== + dependencies: + chalk "^4.1.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.0" + string-format "^2.0.0" + +ts-essentials@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@>=8.0.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsort@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl-util@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typechain@^8.1.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.1.tgz#dccbc839b94877997536c356380eff7325395cfb" + integrity sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ== + dependencies: + "@types/prettier" "^2.1.1" + debug "^4.3.1" + fs-extra "^7.0.0" + glob "7.1.7" + js-sha3 "^0.8.0" + lodash "^4.17.15" + mkdirp "^1.0.4" + prettier "^2.3.1" + ts-command-line-args "^2.2.0" + ts-essentials "^7.0.1" + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript@>=4.5.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici@^5.14.0: + version "5.23.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.23.0.tgz#e7bdb0ed42cebe7b7aca87ced53e6eaafb8f8ca0" + integrity sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg== + dependencies: + busboy "^1.6.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== + +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.0, util@^0.12.5: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +web3-bzz@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.10.0.tgz#ac74bc71cdf294c7080a79091079192f05c5baed" + integrity sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA== + dependencies: + "@types/node" "^12.12.6" + got "12.1.0" + swarm-js "^0.1.40" + +web3-bzz@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.4.tgz#9419e606e38a9777443d4ce40506ebd796e06075" + integrity sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz#1016534c51a5df77ed4f94d1fcce31de4af37fad" + integrity sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g== + dependencies: + web3-eth-iban "1.10.0" + web3-utils "1.10.0" + +web3-core-helpers@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz#f8f808928560d3e64e0c8d7bdd163aa4766bcf40" + integrity sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg== + dependencies: + web3-eth-iban "1.7.4" + web3-utils "1.7.4" + +web3-core-method@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.0.tgz#82668197fa086e8cc8066742e35a9d72535e3412" + integrity sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA== + dependencies: + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.10.0" + web3-core-promievent "1.10.0" + web3-core-subscriptions "1.10.0" + web3-utils "1.10.0" + +web3-core-method@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.4.tgz#3873c6405e1a0a8a1efc1d7b28de8b7550b00c15" + integrity sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ== + dependencies: + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-utils "1.7.4" + +web3-core-promievent@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz#cbb5b3a76b888df45ed3a8d4d8d4f54ccb66a37b" + integrity sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg== + dependencies: + eventemitter3 "4.0.4" + +web3-core-promievent@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz#80a75633fdfe21fbaae2f1e38950edb2f134868c" + integrity sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz#4b34f6e05837e67c70ff6f6993652afc0d54c340" + integrity sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ== + dependencies: + util "^0.12.5" + web3-core-helpers "1.10.0" + web3-providers-http "1.10.0" + web3-providers-ipc "1.10.0" + web3-providers-ws "1.10.0" + +web3-core-requestmanager@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz#2dc8a526dab8183dca3fef54658621801b1d0469" + integrity sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA== + dependencies: + util "^0.12.0" + web3-core-helpers "1.7.4" + web3-providers-http "1.7.4" + web3-providers-ipc "1.7.4" + web3-providers-ws "1.7.4" + +web3-core-subscriptions@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz#b534592ee1611788fc0cb0b95963b9b9b6eacb7c" + integrity sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.10.0" + +web3-core-subscriptions@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz#cfbd3fa71081a8c8c6f1a64577a1a80c5bd9826f" + integrity sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.4" + +web3-core@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633" + integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ== + dependencies: + "@types/bn.js" "^5.1.1" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.10.0" + web3-core-method "1.10.0" + web3-core-requestmanager "1.10.0" + web3-utils "1.10.0" + +web3-core@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.4.tgz#943fff99134baedafa7c65b4a0bbd424748429ff" + integrity sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q== + dependencies: + "@types/bn.js" "^5.1.0" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-requestmanager "1.7.4" + web3-utils "1.7.4" + +web3-eth-abi@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz#53a7a2c95a571e205e27fd9e664df4919483cce1" + integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== + dependencies: + "@ethersproject/abi" "^5.6.3" + web3-utils "1.10.0" + +web3-eth-abi@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz#3fee967bafd67f06b99ceaddc47ab0970f2a614a" + integrity sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg== + dependencies: + "@ethersproject/abi" "^5.6.3" + web3-utils "1.7.4" + +web3-eth-accounts@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz#2942beca0a4291455f32cf09de10457a19a48117" + integrity sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q== + dependencies: + "@ethereumjs/common" "2.5.0" + "@ethereumjs/tx" "3.3.2" + eth-lib "0.2.8" + ethereumjs-util "^7.1.5" + scrypt-js "^3.0.1" + uuid "^9.0.0" + web3-core "1.10.0" + web3-core-helpers "1.10.0" + web3-core-method "1.10.0" + web3-utils "1.10.0" + +web3-eth-accounts@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz#7a24a4dfe947f7e9d1bae678529e591aa146167a" + integrity sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw== + dependencies: + "@ethereumjs/common" "^2.5.0" + "@ethereumjs/tx" "^3.3.2" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" + +web3-eth-contract@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz#8e68c7654576773ec3c91903f08e49d0242c503a" + integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w== + dependencies: + "@types/bn.js" "^5.1.1" + web3-core "1.10.0" + web3-core-helpers "1.10.0" + web3-core-method "1.10.0" + web3-core-promievent "1.10.0" + web3-core-subscriptions "1.10.0" + web3-eth-abi "1.10.0" + web3-utils "1.10.0" + +web3-eth-contract@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz#e5761cfb43d453f57be4777b2e5e7e1082078ff7" + integrity sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ== + dependencies: + "@types/bn.js" "^5.1.0" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-utils "1.7.4" + +web3-eth-ens@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz#96a676524e0b580c87913f557a13ed810cf91cd9" + integrity sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.10.0" + web3-core-helpers "1.10.0" + web3-core-promievent "1.10.0" + web3-eth-abi "1.10.0" + web3-eth-contract "1.10.0" + web3-utils "1.10.0" + +web3-eth-ens@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz#346720305379c0a539e226141a9602f1da7bc0c8" + integrity sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-contract "1.7.4" + web3-utils "1.7.4" + +web3-eth-iban@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz#5a46646401965b0f09a4f58e7248c8a8cd22538a" + integrity sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg== + dependencies: + bn.js "^5.2.1" + web3-utils "1.10.0" + +web3-eth-iban@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz#711fb2547fdf0f988060027331b2b6c430505753" + integrity sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w== + dependencies: + bn.js "^5.2.1" + web3-utils "1.7.4" + +web3-eth-personal@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz#94d525f7a29050a0c2a12032df150ac5ea633071" + integrity sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.10.0" + web3-core-helpers "1.10.0" + web3-core-method "1.10.0" + web3-net "1.10.0" + web3-utils "1.10.0" + +web3-eth-personal@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz#22c399794cb828a75703df8bb4b3c1331b471546" + integrity sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" + +web3-eth@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.0.tgz#38b905e2759697c9624ab080cfcf4e6c60b3a6cf" + integrity sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA== + dependencies: + web3-core "1.10.0" + web3-core-helpers "1.10.0" + web3-core-method "1.10.0" + web3-core-subscriptions "1.10.0" + web3-eth-abi "1.10.0" + web3-eth-accounts "1.10.0" + web3-eth-contract "1.10.0" + web3-eth-ens "1.10.0" + web3-eth-iban "1.10.0" + web3-eth-personal "1.10.0" + web3-net "1.10.0" + web3-utils "1.10.0" + +web3-eth@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.4.tgz#a7c1d3ccdbba4de4a82df7e3c4db716e4a944bf2" + integrity sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug== + dependencies: + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-accounts "1.7.4" + web3-eth-contract "1.7.4" + web3-eth-ens "1.7.4" + web3-eth-iban "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" + +web3-net@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.0.tgz#be53e7f5dafd55e7c9013d49c505448b92c9c97b" + integrity sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA== + dependencies: + web3-core "1.10.0" + web3-core-method "1.10.0" + web3-utils "1.10.0" + +web3-net@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.4.tgz#3153dfd3423262dd6fbec7aae5467202c4cad431" + integrity sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg== + dependencies: + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" + +web3-providers-http@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.10.0.tgz#864fa48675e7918c9a4374e5f664b32c09d0151b" + integrity sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA== + dependencies: + abortcontroller-polyfill "^1.7.3" + cross-fetch "^3.1.4" + es6-promise "^4.2.8" + web3-core-helpers "1.10.0" + +web3-providers-http@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.4.tgz#8209cdcb115db5ccae1f550d1c4e3005e7538d02" + integrity sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA== + dependencies: + web3-core-helpers "1.7.4" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz#9747c7a6aee96a51488e32fa7c636c3460b39889" + integrity sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.10.0" + +web3-providers-ipc@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz#02e85e99e48f432c9d34cee7d786c3685ec9fcfa" + integrity sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.7.4" + +web3-providers-ws@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz#cb0b87b94c4df965cdf486af3a8cd26daf3975e5" + integrity sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.10.0" + websocket "^1.0.32" + +web3-providers-ws@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz#6e60bcefb456f569a3e766e386d7807a96f90595" + integrity sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.4" + websocket "^1.0.32" + +web3-shh@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8" + integrity sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg== + dependencies: + web3-core "1.10.0" + web3-core-method "1.10.0" + web3-core-subscriptions "1.10.0" + web3-net "1.10.0" + +web3-shh@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.4.tgz#bee91cce2737c529fd347274010b548b6ea060f1" + integrity sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A== + dependencies: + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-net "1.7.4" + +web3-utils@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578" + integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== + dependencies: + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3-utils@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.4.tgz#eb6fa3706b058602747228234453811bbee017f5" + integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== + dependencies: + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3-utils@^1.3.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.2.tgz#361103d28a94d5e2a87ba15d776a62c33303eb44" + integrity sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow== + dependencies: + "@ethereumjs/util" "^8.1.0" + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereum-cryptography "^2.1.2" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + +web3@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274" + integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== + dependencies: + web3-bzz "1.10.0" + web3-core "1.10.0" + web3-eth "1.10.0" + web3-eth-personal "1.10.0" + web3-net "1.10.0" + web3-shh "1.10.0" + web3-utils "1.10.0" + +web3@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.4.tgz#00c9aef8e13ade92fd773d845fff250535828e93" + integrity sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A== + dependencies: + web3-bzz "1.7.4" + web3-core "1.7.4" + web3-eth "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-shh "1.7.4" + web3-utils "1.7.4" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +which@1.3.1, which@^1.1.1, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==